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
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?
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
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.
Tags imagemagick