O comando ImageMagick convert para fazer um .gif a partir de um grande número de arquivos .xpm

0

Eu preciso converter um grande número (~ 10k) de arquivos .xpm gerados pelo meu código em um arquivo .gif .

Eu usei ImageMagick como instruído aqui: Como converter um PNG tira para um GIF?

Mas meus nomes de arquivos são como plot*.xpm , * de 0 a 10000 e o comando convert não parece entender direito e cria um arquivo .gif com apenas alguns quadros.

Meus arquivos .xpm são assim

eles terminam em algum lugar com uma distribuição não aleatória de pontos azuis e verdes. (Como um círculo de azul no meio) em dizer 1000 quadro. (Eu não posso incluir sua foto por causa dos limites de postagem)

Mas esse é o arquivo .gif que recebo

Eu uso esta linha de código: convert -loop 0 -delay 10 -page +0+0 /*.xpm output.gif

Acho que devo usar outro método para introduzir .xpm arquivos no ImageMagick.
O que devo fazer?

    
por Alireza 08.02.2017 / 22:08

1 resposta

0

Parece que todas as suas fotos foram convertidas, mas não na ordem correta, como esperado.

De acordo com minha experiência, os comandos convert não podem trabalhar com arquivos com o mesmo formato de nome de arquivo que você usou. Funciona em arquivos com esse tipo:

file100
file10
file11
file1
file200
file20
file21
file2
...

Então, você precisa renomear todos os seus arquivos antes da conversão. Então, seus nomes de arquivos devem ficar assim:

file00001
file00002
...
file00010
...
file10000

Isso é o que escrevi. Veja se usá-lo resolveria seu problema:

rename 's/plot(\d{1})\.xpm/plot0000$1\.xpm/' *  # plot#.xpm     >    plot0000#.xpm
rename 's/plot(\d{2})\.xpm/plot000$1\.xpm/' *   # plot##.xpm    >    plot000##.xpm
rename 's/plot(\d{3})\.xpm/plot00$1\.xpm/' *    # plot###.xpm   >    plot00###.xpm
rename 's/plot(\d{4})\.xpm/plot0$1\.xpm/' * # plot####.xpm  >    plot0####.xpm

convert -loop 0 -delay 10 *.xpm output.gif
    
por Mostafa Ahangarha 18.02.2017 / 10:05