Penso di aver bisogno di nuove spiegazioni più sofisticate (anche il ritardo dei frame è una cosa importante che dovrebbe essere considerata) ... Per questo nuovo processo dovrai scaricare JREPL.BAT da questo link:
http://www.dostips.com /forum/viewtopic.php?t=6044
Per prima cosa copia il file GIF catturato nel file input.gif, quindi avvia l'interprete dei comandi e digita:
gifsicle input.gif -I "# -1"> input.txt
guarda input.txt e vedi qual è la lunghezza dell'animazione - quanti frame contiene ... guarda anche nel ritardo del frame e se i suoi 0.07s significa che dovresti inserire l'opzione -d14 (7msec * 2) in questa riga in process.cmd: gifsicle -b -U -d14 input.gif, dopo la modifica salva process.cmd
quindi modifica test.bat e modifica il valore della variabile 166 da questa riga in modo che corrisponda al numero di fotogrammi dell'animazione: per / L %% i IN (1,2,166) DO echo "# %% i" >> input.bat, after modifica salva test.bat ...
quindi avvia process.cmd e l'animazione ritagliata con ogni fotogramma dispari verrà elaborata nel file input.gif
PS Il vantaggio di questo metodo è anche che hai il pieno controllo di cosa vuoi eliminare da gif (ogni secondo fotogramma (1.2.166) o ogni terzo (1.32666)), e così via basta cambiare il numero medio in riga batch, ma tieni presente che se specifichi (1.366), dovresti cambiare di conseguenza -d14 (opzione di ritardo) da process.cmd per riflettere il cambiamento (7msec * 3/2 = 10), quindi invece di (7msec * 2 / 1 = 14), l'opzione per il ritardo dovrebbe essere -d10 ...
Altri file (ad esempio per rimuovere ogni secondo frame): test.bat:
@echo off
echo gifsicle -b input.gif --delete>> input.bat
for /L %%i IN (1,2,166) DO echo "#%%i">> input.bat
echo --done>> input.bat
call jrepl.bat "\n" "" /x /m /f input.bat /o -
process.cmd:
gifsicle -b -U -d14 input.gif
call "test.bat"
call "input.bat"
gifsicle -b -O3 input.gif
erase "input.bat"
E file readme helper input.txt:
* input.gif 166 images
logical screen 1366x768
global color table [256]
background 15
loop forever
+ image #165 1x1 at 1365,767 transparent 15
disposal asis delay 0.07s
let i=0; while [[ $i -lt $(($numframes / 2)) ]]; do gifsicle $2 --delete "#$i" -o $2; let i=i+1; done