मुझे लगता है कि मुझे नई और अधिक परिष्कृत व्याख्या की आवश्यकता है (फ्रेम विलंब भी महत्वपूर्ण बात है जिसे बहुत महत्वपूर्ण माना जाना चाहिए) ... इस नई प्रक्रिया के लिए आपको इस लिंक से JREPL.BAT डाउनलोड करना होगा:
http://www.dostips.com /forum/viewtopic.php?t=6044
सबसे पहले copy gif को input.gif फ़ाइल में कैद करें, फिर कमांड इंटरप्रेटर शुरू करें और टाइप करें:
gifsicle input.gif -I "# -1"> input.txt
input.txt में देखें और देखें कि एनीमेशन की लंबाई क्या है - इसमें कितने फ्रेम हैं ... फ्रेम की देरी पर भी ध्यान दें और यदि इसके 0.07s का अर्थ है कि आपको विकल्प -d14 (7msec * 2) को इस पंक्ति में रखना चाहिए process.cmd में: gifsicle -b -U -d14 input.gif, save process.cmd संपादित करने के बाद
फिर एनीमेशन के फ्रेम की संख्या से मिलान करने के लिए इस लाइन से टेस्ट 166 और परिवर्तन मान का परिवर्तन करें: एनिमेशन के फ़्रेमों की संख्या से मेल खाने के लिए: / L %% i IN (1,2,166) DO "# %% i" >> input.bat, के बाद सहेजें test.bat संपादित करें ...
फिर शुरू करें। हर विषम फ्रेम के साथ cmd और क्रॉप्ड एनीमेशन को फाइल input.gif में संसाधित किया जाएगा
PS इस पद्धति का लाभ यह भी है कि आपको इस बात का पूरा नियंत्रण है कि आप gif (हर दूसरा फ्रेम (1,2,166), या हर तीसरे (1,3,166)) से क्या हटाना चाहते हैं, और इसी तरह सिर्फ मध्य संख्या को बदलें बैच लाइन, लेकिन ध्यान रखें कि यदि आप (1,3,166) को निर्दिष्ट करते हैं, तो आपको तदनुसार परिवर्तन (7msec * 3/2 = 10) को प्रतिबिंबित करने के लिए process.cmd से -14 (देरी विकल्प) बदलना चाहिए, इसलिए (7msec) 2 के बजाय / 1 = 14), देरी के लिए विकल्प होना चाहिए -10 ...
अन्य फाइलें (हर दूसरे फ्रेम को हटाने के उदाहरण के लिए): 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 -
प्रक्रिया। cmd:
gifsicle -b -U -d14 input.gif
call "test.bat"
call "input.bat"
gifsicle -b -O3 input.gif
erase "input.bat"
और हेल्पर 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