Como passar uma lista de arquivos para a montagem do ImageMagick?

4

Eu tenho um grande número de blocos, com a seguinte convenção de nomenclatura:

A-x-y.jpg

onde

0<=x<=16 &
0<=y<=14

Agora eu sei que podemos usar a ferramenta Montage no ImageMagick, para mesclá-los em uma imagem inteira.

Idealmente, eu poderia ter usado a seguinte linha de comando:

montage *.jpg -geometry +0+0 -tile 17x15 all.jpg

mas meus arquivos são tais que A-0-0.jpg está diretamente acima de A-0-1.jpg, que está acima de A-0-2.jpg e A-1-0.jpg está à direita de A-0-0.jpg.

Então, quando eu uso o comando acima, a ordem está errada. Eu tenho um arquivo de texto com a ordem correta. Posso usar o arquivo de texto como uma entrada para montagem. Se sim, como faço isso?

    
por Devdatta Tengshe 15.07.2013 / 17:27

2 respostas

6

Nas versões mais recentes do ImagMagick (ou seja, > v6.5.2-1) @ operador pode ser usado assim:

montage @list.txt -geometry +0+0 -tile 17x15 all.jpg
    
por 15.07.2013 / 18:04
3

parece que a montagem não suporta um argumento "arquivo com nomes de arquivos".

Edit: @Devdatta encontrou a sintaxe correta (veja também aqui ) : @filenames.txt . Portanto, o método abaixo só deve ser necessário para versões muito antigas das ferramentas do ImageMagick.

Mas se você estiver usando Linux ou um sistema semelhante ao Unix, você pode substituir o (s) argumento (s) do nome do arquivo pela saída de um comando. Dessa forma, você pode usar seu arquivo com os nomes de arquivos ordenados:

montage 'cat filenames.txt' -geometry +0+0 -tile 17x15 all.jpg

(Por favor, note os backticks em torno do comando cat.)

As quebras de linha entre nomes de arquivos em filename.txt não prejudicam a invocação do comando. E você pode até usar curingas em filename.txt , já que a substituição de comandos precede a expansão do nome do arquivo.

Naturalmente, você também pode renomear os arquivos de origem para gerar a ordem desejada.

    
por 15.07.2013 / 17:54