Como passar muitas opções para o ImageMagick?

2

Estou usando o ImageMagick para compor muitas imagens.

for counter in {1..$limit}
do
  partial=...
  x=...
  y=...
  convert $canvas
    $partial -geometry "+$x+$y" -composite
    $canvas
done

Basicamente eu estou mogrificando N imagens, uma de cada vez.

Neste momento, meu $limit é pequeno e o script é executado em tempo razoável. Mas $limit aumentará para milhares de imagens no futuro.

Estou pensando em criar o comando convert para incluir todos os parciais de uma só vez. Em seguida, execute somente convert uma vez. ImageMagick afirma pode trabalhar com imagens terabit sem problemas. Então, imagino que dar milhares de tarefas de uma só vez não deveria ser um problema.

O problema é que o shell limita o número de argumentos que você pode passar para um programa. Posso passar todos os argumentos para o ImageMagick de alguma outra forma, como um arquivo de script? E isso é uma má ideia?

    
por William Entriken 10.11.2018 / 19:23

1 resposta

6

Você pode passar as opções do ImageMagick de um arquivo, passando-lhe um argumento @filename , caso em que o ImageMagick lerá os argumentos do arquivo passado.

Em a documentação (consulte a seção "Referências de arquivo"):

Some ImageMagick command-line options may exceed the capabilities of your command-line processor. Windows, for example, limits command-lines to 8192 characters. If, for example, you have a draw option with polygon points that exceed the command-line length limit, put the draw option instead in a file and reference the file with the @ (e.g. @mypoly.txt).

Portanto, esse recurso foi projetado especificamente para reduzir as limitações no tamanho da linha de comando e no número de argumentos.

    
por 10.11.2018 / 22:14