Je pense que j'ai besoin d'une nouvelle explication plus sophistiquée (le retard de trame est également une chose importante qui doit également être prise en compte) ... Pour ce nouveau processus, vous devrez télécharger JREPL.BAT à partir de ce lien:
http://www.dostips.com /forum/viewtopic.php?t=6044
Copiez d'abord le gif capturé dans le fichier input.gif puis lancez l'interpréteur de commandes et tapez:
gifsicle input.gif -I "# -1"> input.txt
regardez dans input.txt et voyez quelle est la durée de l'animation - combien d'images il contient ... regardez également le retard de l'image et si ses 0,07 s cela signifie que vous devez mettre l'option -d14 (7 msec * 2) dans cette ligne dans process.cmd: gifsicle -b -U -d14 input.gif, après modification enregistrer process.cmd
puis éditez test.bat et changez la valeur de la variable 166 à partir de cette ligne pour qu'elle corresponde au nombre d'images d'animation: pour / L %% i IN (1,2,166) FAITES écho "# %% i" >> input.bat, après modifier enregistrer test.bat ...
puis démarrez process.cmd et l'animation recadrée avec chaque image impaire sera traitée dans le fichier input.gif
PS L'avantage de cette méthode est également que vous avez le contrôle total de ce que vous voulez supprimer du gif (chaque seconde trame (1,2,166), ou chaque troisième (1,3,166)), et ainsi de suite il suffit de changer le numéro du milieu dans ligne de traitement par lots, mais sachez que si vous spécifiez (1,3,166), vous devez en conséquence modifier -d14 (option de délai) de process.cmd pour refléter le changement (7 ms * 3/2 = 10), donc au lieu de (7 ms * 2 / 1 = 14), l'option de délai doit être -d10 ...
Autres fichiers (par exemple pour supprimer une trame sur deux): 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"
Et aidez le fichier readme 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