सीधे कंटेंट पर जाएं

APNG को GIF में बदलें

एनिमेटेड PNG बेहतर रंगों वाली GIF है, जिसे आधा इंटरनेट स्थिर तस्वीर मानता है। उसे ऐसी GIF में बदलें जो आप जहां पोस्ट करें वहां सच में चले, हर फ़्रेम बरकरार। कुछ भी स्टोर नहीं होता।

  • कभी स्टोर नहीं होती
  • न कतार, न इंतज़ार
  • साइनअप नहीं, वॉटरमार्क नहीं

यह कैसे काम करता है

1

अपनी एनिमेटेड PNG जोड़ें

इनका नाम आमतौर पर .png होता है, कभी-कभी .apng; दोनों चलते हैं। सादी PNG भी चलती है और एक फ़्रेम वाली GIF बनकर निकलती है।

2

कन्वर्ट करें

हर फ़्रेम अपनी टाइमिंग के साथ पढ़ा जाता है और तस्वीर से ही बने पैलेट के साथ GIF में लिखा जाता है — 256 रंग, या छोटी फ़ाइल के लिए कम।

3

डाउनलोड करें

एक-एक करके या ZIP में। हर पंक्ति बताती है कि कितने फ़्रेम आए।

APNG क्या है

APNG एक साधारण PNG है जिसमें तीन तरह के अतिरिक्त चंक जोड़े गए हैं — acTL एनिमेशन की घोषणा करता है, हर फ़्रेम से पहले fcTL उसका साइज़, जगह, देरी और पिछले फ़्रेम को कैसे हटाना है बताता है, और fdAT फ़्रेम के पिक्सेल रखता है — इस तरह डाले गए कि जो व्यूअर इन्हें नहीं जानता, उसे एक सामान्य स्थिर PNG दिखती है। 2004 में यही बैकवर्ड कम्पैटिबिलिटी मक़सद थी और आज यही समस्या है: जो सॉफ़्टवेयर सिर्फ़ हेडर देखता है, वह फ़ाइल को “तस्वीर” मानकर रख देता है और आगे कभी नहीं देखता।

हर फ़्रेम फ़ाइल के निर्देश के हिसाब से जोड़कर पूरी तस्वीर बनाया जाता है — फ़्रेम कैनवास का सिर्फ़ एक हिस्सा ढक सकते हैं और पहले वाले पर ब्लेंड हो सकते हैं या उसकी जगह ले सकते हैं — फिर एक पैलेट में क्वांटाइज़ होकर उसी देरी के साथ GIF में लिखा जाता है। क्वांटाइज़र अपने 256 रंग फ़्रेम से ही बनाता है और डिदर करता है; सपाट आर्टवर्क और पिक्सेल-आर्ट स्टिकर, जो ज़्यादातर APNG होते हैं, लगभग बिना बदले निकलते हैं। 20 ms से कम की देरी 100 ms कर दी जाती है, जैसा ब्राउज़र GIF के साथ वैसे भी करते हैं।

ट्रांसपेरेंसी एक-बिट वाली बन जाती है: पिक्सेल या तो दिखता है या नहीं। मुलायम परछाईं वाले APNG स्टिकर को आधी अपारदर्शिता पर कटा एक तीखा किनारा मिलता है। यह कन्वर्ज़न की नहीं, GIF की सीमा है, और इसका अकेला रास्ता असली अल्फ़ा वाला फ़ॉर्मैट है — WebP, जहां मंज़िल उसे चलाती हो।

जब आपको कुछ और चाहिए

ffmpeg APNG पढ़ता है और दो-पास पैलेट के साथ GIF लिखता है: ffmpeg -i in.png -vf "split[a][b];[a]palettegen[p];[b][p]paletteuse" out.gif। यह डिदरिंग के ऐसे विकल्प भी देता है जो यह पेज नहीं देता, और ग्रेडिएंट पर वे मायने रखते हैं।

अगर मंज़िल APNG चलाती है — हर मौजूदा ब्राउज़र चलाता है, और iMessage व ज़्यादातर स्टिकर प्लेटफ़ॉर्म भी — तो APNG ही रखें। उसमें असली ट्रांसपेरेंसी और पूरे रंग हैं, और GIF एक कम्पैटिबिलिटी कॉपी है जो बड़ी भी है और ख़राब भी।

अक्सर पूछे जाने वाले सवाल

कैसे पता करूं कि मेरी PNG एनिमेटेड है?

उसे Chrome, Firefox या Safari में खोलें: तीनों APNG चलाते हैं, इसलिए अगर वह वहां चलती है और जहां आपने पोस्ट की वहां नहीं, तो वह APNG है और यही सही पेज है। यहां की पंक्ति भी बताती है कि उसमें कितने फ़्रेम मिले।

क्या GIF में टाइमिंग बनी रहती है?

हां। दोनों फ़ॉर्मैट में हर फ़्रेम अपनी देरी साथ रखता है और वह हूबहू कॉपी होती है, इसलिए 12 फ़्रेम का उछलता एनिमेशन उसी रफ़्तार पर 12 फ़्रेम का ही रहता है।

GIF ज़्यादा दानेदार क्यों दिखती है?

APNG फ़्रेम में 1.6 करोड़ रंग और स्मूद ट्रांसपेरेंसी होती है; GIF फ़्रेम में 256 रंग होते हैं और स्मूद ट्रांसपेरेंसी बिल्कुल नहीं। पैलेट तस्वीर से बनता है और डिदर किया जाता है, दाने वहीं से आते हैं। सपाट आर्टवर्क में — जो APNG में आमतौर पर होता है — यह मुश्किल से दिखता है।

अगर PNG एनिमेटेड न हो तो?

वह एक फ़्रेम वाली GIF में बदलती है और पंक्ति यही बताती है। स्थिर इमेज के लिए आप लगभग तय है कि PNG ही रखना चाहेंगे, या छोटी फ़ाइल के लिए PNG को WebP में बदलें इस्तेमाल करेंगे।

क्या मेरी फ़ाइलें कहीं स्टोर होती हैं?

नहीं — किसी भी समय कुछ भी स्टोर नहीं किया जाता।

Discord या Slack मेरा स्टिकर स्थिर क्यों दिखाते हैं?

कई अपलोड फ़ॉर्म PNG हेडर पहचानकर फ़ाइल को स्थिर तस्वीर मान लेते हैं और सिर्फ़ पहला फ़्रेम रखते हैं। वही सर्विस GIF को पूरा चलाती हैं। बदलना भरोसेमंद हल है; दूसरा रास्ता WebP है, जहां वह सपोर्ट हो।

ध्यान दें: GIF हर फ़्रेम में 256 रंग रखती है और आंशिक ट्रांसपेरेंसी नहीं, इसलिए मुलायम किनारे सख़्त हो जाते हैं और ग्रेडिएंट में हल्की पट्टियां बनती हैं। APNG के फ़्रेम पढ़ने के लिए हाल का Chrome, Edge या Opera चाहिए; बाक़ी जगह पहला फ़्रेम स्थिर इमेज के रूप में लिखा जाता है और पंक्ति यही बताती है।

यह टूल अपनी वेबसाइट पर लगाएं

किसी भी ब्लॉग, क्लास पेज या हेल्प आर्टिकल के लिए मुफ़्त। एक स्निपेट पेस्ट करें और आपके विज़िटर इसे सीधे आपके पेज पर इस्तेमाल कर सकेंगे।