उबंटू में कमांड लाइन से एनिमेटेड जीआईएफ कैसे बनाएं और संपादित करें
एनिमेटेड जीआईएफ पिछले कुछ सालों में वास्तव में लोकप्रिय हो गए हैं, और उनकी लोकप्रियता हर गुजरने वाले दिन के साथ बढ़ रही है। सहमत नहीं है? इसके बारे में सोचें: 23 मिलियन जीआईएफ पर हर दिन टंबलर को पोस्ट किया जाता है। इस छवि प्रारूप के लिए स्पष्ट रूप से एक दर्शक है।
क्या यह आपको जीआईएफ बनाने के लिए लुभाता है? यदि हां, तो आपको यह जानकर ख़ुशी होगी कि विभिन्न जीयूआई आधारित जीआईएफ संपादक हैं जो विभिन्न ओएस प्लेटफार्मों पर काम करते हैं। हालांकि, यदि आप लिनक्स पर हैं और इस नौकरी के लिए कमांड लाइन टूल की तलाश में हैं, तो आगे देखो क्योंकि हम गिफ्टिकल पर चर्चा करेंगे - एक उपकरण जो आपको एनिमेटेड जीआईएफ के साथ आसानी से खेल सकता है।
नोट : इस लेख में उल्लिखित सभी उदाहरणों के लिए गिफसिकल का संस्करण 1.78 का उपयोग किया गया था।
Gifsicle
GIFsicle GIF छवियों और एनिमेशन के बारे में जानकारी बनाने, संपादित करने और प्राप्त करने के लिए एक कमांड लाइन उपकरण है। टूल के आधिकारिक वेब पेज के मुताबिक, गिफसिकल छवि अनुकूलन के साथ-साथ इंटरलसिंग, टिप्पणियां, लूपिंग और पारदर्शिता पर नियंत्रण सहित कई सुविधाएं प्रदान करता है। यह " अच्छी तरह से व्यवहार किए गए जीआईएफ बनाता है: अनावश्यक रंगों को हटा देता है, केवल स्थानीय रंगीन टेबलों का उपयोग करता है अगर इसे पूरी तरह से (स्थानीय रंग सारणी अपशिष्ट स्थान और देखने वाले कलाकृतियों का कारण बन सकता है) आदि।
डाउनलोड और स्थापना
उबंटू (साथ ही साथ अन्य डेबियन-आधारित सिस्टम) पर, आप निम्न आदेश का उपयोग करके आसानी से Gifsicle टूल को डाउनलोड और इंस्टॉल कर सकते हैं:
sudo apt-gifsicle स्थापित करें
वैकल्पिक रूप से आप इसे अपने स्रोत कोड का उपयोग करके स्क्रैच से भी बना सकते हैं या पूर्व-निर्मित बाइनरी का उपयोग कर सकते हैं - दोनों टूल के आधिकारिक वेब पेज से डाउनलोड के लिए उपलब्ध हैं।
Gifsicle के साथ एनिमेटेड जीआईएफ बनाएँ
मान लें कि आपके पास jpg फ़ाइलों का एक गुच्छा है और उनमें से एनिमेटेड gif फ़ाइल बनाना चाहते हैं। यहां यह कैसे करें:
चूंकि gifsicle
कमांड केवल gif फ़ाइलों पर काम करता है, इसलिए आपको convert
कमांड का उपयोग करके सभी .jpg फ़ाइलों को .gif प्रारूप में convert
:
कनवर्ट करें [इनपुट-फ़ाइल-नाम] .jpg [आउटपुट-फ़ाइल-नाम] .gif
यदि jpg फ़ाइलों की संख्या बड़ी है, तो आप उन सभी को परिवर्तित करने के लिए निम्न आदेश का उपयोग कर सकते हैं:
'* .jpg [widht, ex: 300x] के रूप में परिवर्तित करें' resized% 03d.gif
एक बार jpg से gif में रूपांतरण करने के बाद, अंतिम एनिमेटेड में व्यक्तिगत gifs को गठबंधन करने के लिए सामान्य आदेश निम्नानुसार है:
gifsicle [एनीमेशन की गति] [लूप के लिए समय की संख्या] [इनपुट jpgs]> output.gif
उपर्युक्त आदेश में "एनीमेशन की गति" को --delay
ध्वज का उपयोग करके सेट किया जा सकता है, जबकि "लूप की संख्या" को --loopcount
ध्वज का उपयोग करके सेट किया जा सकता है।
उदाहरण के लिए, मेरे पास jpg छवियों का निम्नलिखित समूह था।
निम्न आदेश है जो मैं उपरोक्त छवियों में से एनिमेटेड gif उत्पन्न करने के लिए उपयोग किया जाता है:
gifsicle --delay = 80 --loopcount = हमेशा * .gif> out.gif
और यहाँ out.gif है।
कृपया ध्यान दें कि - --delay
का मान एक सेकंड के सौवां में फ्रेम के बीच देरी का प्रतिनिधित्व करता है। इसके अलावा, मैंने "हमेशा के लिए" --loopcount
ध्वज के मूल्य के रूप में उपयोग किया। यह सुनिश्चित करना है कि एनीमेशन बंद नहीं होता है। यदि आप एनीमेशन को उस संख्या की संख्या तक सीमित करना चाहते हैं तो आप किसी भी पूर्णांक मान का उपयोग कर सकते हैं।
व्यक्तिगत फ्रेम्स निकालें
Gifsicle आपको एनिमेटेड gif से व्यक्तिगत फ्रेम आसानी से निकालने की अनुमति देता है। यहां एक उदाहरण दिया गया है कि मैंने यह कैसे किया:
gifsicle out.gif '# 0'> first-frame.gif
ऊपर दिए गए आदेश एनिमेटेड out.gif से पहले फ्रेम निकाले गए। मैंने बस "#" और आउटपुट फ़ाइल नाम के बाद पूर्णांक मान को बदलना जारी रखा और out.gif से सभी फ्रेम निकालने में सक्षम था।
यदि एनिमेटेड gif में फ़्रेम की संख्या काफी अधिक है, और आप उन सभी को निकालना चाहते हैं, तो - काफी समझदारी से - उपरोक्त आदेश को बार-बार मैन्युअल रूप से चलाने के लिए अव्यवहारिक होगा। उस स्थिति में आप एक शेल स्क्रिप्ट से लूप में कमांड चला सकते हैं।
यहां उल्लेख करने योग्य एक और बात यह है कि आप "#।" के साथ नकारात्मक मानों का भी उपयोग कर सकते हैं। नकारात्मक मान अंत से फ्रेम को संदर्भित करते हैं। उदाहरण के लिए, "# -1" आपको अंतिम फ्रेम लाएगा।
एनिमेटेड जीआईएफ संपादित करें
Gifsicle के साथ आप आसानी से एनिमेटेड जीआईएफ संपादित कर सकते हैं। उदाहरण के लिए, निम्न आदेश एक नया "out.gif" बनाता है जो कि "a.gif" और "b.gif" के विलय के साथ अपने पहले फ्रेम के साथ पुराने "out.gif" के अलावा कुछ भी नहीं है:
gifsicle --delay = 80 --loopcount = forever -b out.gif --replace '# 0' a.gif b.gif
इसी प्रकार, आप फ्रेम हटाने के लिए --delete
ध्वज का उपयोग कर सकते हैं। उदाहरण के लिए, निम्न आदेश परिणामस्वरूप gif "out-new.gif" होने के साथ "out.gif" का पहला फ्रेम हटा देता है:
gifsicle out.gif --delete '# 0'> out-new.gif
न केवल आप हटा सकते हैं और प्रतिस्थापित कर सकते हैं, लेकिन आप एनिमेटेड जीआईएफ में नए फ्रेम भी जोड़ सकते हैं। उदाहरण के लिए, --append
आपको एनिमेटेड gif के अंत में फ़्रेम जोड़ने देता है। यहां एक उदाहरण दिया गया है:
gifsicle out-new.gif --append a.gif> out-new-appended.gif
उपरोक्त आदेश एनिमेटेड "out-new.gif" में "a.gif" फ्रेम जोड़ देगा और एनिमेटेड "आउट-न्यू-एपेंड.g.g" आउटपुट के रूप में प्रस्तुत करेगा।
मौजूदा एनिमेटेड gif में कहीं भी फ्रेम (या एकाधिक फ़्रेम) जोड़ने के लिए आप --insert-before
flag ध्वज का भी उपयोग कर सकते हैं।
छवि परिवर्तन
गिफसिकल कुछ छवि परिवर्तन विकल्प भी प्रदान करता है। उदाहरण के लिए, आप gif छवियों का आकार बदलने के लिए टूल का उपयोग कर सकते हैं। आप अपनी जीआईएफ छवि को किसी विशेष चौड़ाई और ऊंचाई पर आकार देने के लिए --resize [width]x[height]
ध्वज का उपयोग कर सकते हैं। कमांड के मैन पेज से: " या तो चौड़ाई या ऊंचाई अंडरस्कोर '_' हो सकती है। यदि तर्क widthx_ है, तो आउटपुट जीआईएफ को इसके पहलू अनुपात को बदले बिना चौड़ाई पिक्सल चौड़े तक स्केल किया जाता है। "
यहां बताया गया है कि मैंने "out.gif" पर एक आकार बदलने का ऑपरेशन कैसे किया:
gifsicle out.gif - 150x_> out-resize.gif --resize
उपरोक्त आदेश ने "out-resize.gif" नाम की एक फ़ाइल बनाई जो 150px चौड़ाई के साथ "out.gif" का आकार बदल गया था।
निष्कर्ष
Gifsicle एक बहुत ही लोकप्रिय जीआईएफ बनाने / संपादन उपकरण नहीं हो सकता है, लेकिन यह निश्चित रूप से एक बहुत ही उपयोगी है। और मुझे यह स्पष्ट करने दें कि हमने जो कुछ भी चर्चा की है वह सिर्फ हिमशैल की नोक है, क्योंकि यह उपकरण सुविधाओं / विकल्पों की एक बड़ी पेशकश प्रदान करता है। मुझे लगता है कि कोशिश करने लायक है - इसके बारे में और जानें।