Ho una directory piena di immagini che voglio trasformare in una gif.imagemagick convertire il singolo frame delay in gif
Ogni nome di file segue questo schema: <zero_padded_index>_<delay_in_milliseconds>.gif
Esempio:00001_1432.gif
posso creare l'animazione gif con ImageMagick: convert -loop 0 -delay 10 *.gif out.gif
Il problema è, voglio ogni fotogramma di avere un diverso ritardo in base alla seconda cifra nel suo nome.
convert -delay 0 -loop 0 *.gif output.gif
for gif in *.gif; do
name=${gif%.gif}
index=$(echo ${name%-*} | sed 's/0*//')
delay=${name#*-}
# 1. convert milliseconds to w/e imagemagick -delay uses.
# 2. update the frame at the correct index.
done;
È possibile aumentare in modo incrementale la gif? O tornare indietro e cambiarli dopo il fatto? I miei trucchi imagemagick non sono all'altezza.
[Non analizzare l'output di 'ls'] (http://mywiki.wooledge.org/ParsingLs), è invece possibile utilizzare il globbing:' per gif_file in * .gif; fare [...]; done'. Cita anche le tue variabili. 'cut' non è nemmeno necessario, è possibile utilizzare la sostituzione dei parametri per la stessa attività. –