2012-09-09 13 views
7

Tengo un montón de archivos PNG llamados foo<bar>.png Deseo convertir a animación TIF. <bar> es un número que varía de 0 a 25 en saltos de cinco. ImageMagick coloca foo5.png último en la animación mientras se supone que es el segundo. ¿Hay alguna manera, además de cambiar el nombre del archivo al foo05.png para colocarlo en el lugar correcto?Definir el orden de archivos para ImageMagick convertir

Respuesta

5

Usted acaba de dar el orden de sus archivos PNG como deberían aparecer en la animación. Uso:

foo0.png foo5.png foo10.png foo15.png foo20.png foo25.png 

en lugar de

foo*.png 

Después de todo, es sólo 6 nombres de archivos diferentes que deben ser lo suficientemente fácil de escribir:

convert              \ 
    -delay 10             \ 
    foo0.png foo5.png foo10.png foo15.png foo20.png foo25.png \ 
    -loop 0             \ 
    animated.gif 
+0

¿Hay otra manera? Me preguntaba ... – Yotam

+0

@Yotam: ver mi otra respuesta ... –

+0

@Yotam: ¿Has visto mi otra respuesta? ¿No es lo suficientemente bueno para un 'voto popular'? –

14

Si tiene varias imágenes de entrada que son lo suficientemente conveniente para escribir (digamos, foo0..foo100.png), puede hacerlo (en Linux, Unix y Mac OS X):

convert             \ 
    -delay 10            \ 
    $(for i in $(seq 0 5 100); do echo foo${i}.png; done) \ 
    -loop 0            \ 
    animated.gif 
+2

Tenga en cuenta que también puede usar esto para invertir el orden del GIF: $ (seq 100 -5 0) – MasterScrat

+0

Tenga en cuenta que si solo desea invertir el orden normal, puede usar este método pero reemplazar el comando secundario con '$ (ls -r * .png) '. – Annan

1

Puede utilizar "encontrar" con "una especie":

convert -delay 10 $(find . -name "*.png" -print0 | sort -zV | xargs -r0 echo) -loop 0 animated.gif 
Cuestiones relacionadas