iMessage एनिमेटेड स्टिकर पैक: साइज़ और APNG
Charmotion टीम द्वारा · अपडेट:

Apple iMessage स्टिकर इमेज के साइज़ @3x डाइमेंशन में पिक्सेल में बताता है: small 300×300, regular 408×408 और large 618×618। पूरे पैक के लिए एक ही साइज़ इस्तेमाल करें और हर फ़ाइल 500 KB या उससे कम रखें। एनिमेशन के लिए 8-bit ट्रांसपेरेंसी वाला APNG इस्तेमाल करें; GIF भी एनिमेट होता है, पर उसमें सिर्फ़ सिंगल-कलर ट्रांसपेरेंसी मिलती है।
मुख्य बातें
- साइज़ @3x पिक्सेल में हैं: small 300×300, regular 408×408, large 618×618।
- एक पैक में अलग-अलग साइज़ न मिलाएँ; हर स्टिकर फ़ाइल 500 KB या उससे छोटी होनी चाहिए।
- APNG 8-bit ट्रांसपेरेंसी के साथ एनिमेट होता है; GIF सिंगल-कलर ट्रांसपेरेंसी के साथ।
- VoiceOver के लिए हर स्टिकर का लोकलाइज़्ड वैकल्पिक विवरण दें।
- स्टिकर पैक iOS और iPadOS के Messages में चलते हैं, macOS, tvOS, visionOS या watchOS में नहीं।
पहले से कोई कैरेक्टर या लोगो है? अपने कैरेक्टर को असली ऐप स्क्रीन में देखें: स्प्लैश, ऑनबोर्डिंग, लोडिंग और एम्प्टी स्टेट स्क्रीन। यह फ़्री है, आपके ब्राउज़र में चलता है और कुछ भी अपलोड नहीं होता।
iMessage स्टिकर के लिए Apple कौन-से साइज़ ज़रूरी बताता है?
Apple की Human Interface Guidelines कहती हैं: "अपनी स्टिकर इमेज नीचे दिए गए @3x डाइमेंशन में बनाएँ।"
| स्टिकर साइज़ | इमेज डाइमेंशन (@3x पिक्सेल) |
|---|---|
| Small | 300×300 |
| Regular | 408×408 |
| Large | 618×618 |
हर पैक के लिए एक साइज़ चुनें। HIG के अनुसार "अपने सभी स्टिकर उसी साइज़ में तैयार करें; एक स्टिकर पैक में अलग-अलग साइज़ न मिलाएँ।" आप जो साइज़ चुनते हैं, उससे तय होता है कि Messages ड्रॉअर की एक पंक्ति में कितने स्टिकर आएँगे, इसलिए small सरल रिएक्शन के बड़े सेट के लिए ठीक है और large कुछ डिटेल वाले कैरेक्टर के लिए।
हर फ़ाइल की वज़न सीमा एक ही है: "स्टिकर फ़ाइल का साइज़ 500 KB या उससे कम होना चाहिए।" स्टिकर पैक iOS और iPadOS के Messages में सपोर्टेड हैं; HIG इनके लिए लिखती है: "macOS, tvOS, visionOS या watchOS में सपोर्टेड नहीं।"
300/408/618 पॉइंट हैं या पिक्सेल?
पिक्सेल। HIG इन्हें "@3x डाइमेंशन" कहती है, यानी ये संख्याएँ आपकी एक्सपोर्ट की गई इमेज फ़ाइल का असली पिक्सेल साइज़ हैं, जो पहले से ही स्क्रीन पर दिखने वाले पॉइंट साइज़ का तीन गुना है। regular स्टिकर 408×408 पिक्सेल की इमेज है, 408 पॉइंट की इमेज नहीं जिसे आपको फिर से गुणा करना हो।
पैक का साइज़ ज़रूरत से बड़ा होने की यह एक आम वजह है। अगर आप 408 को पॉइंट मानकर 1224×1224 पर एक्सपोर्ट करते हैं, तो हर फ़ाइल में ज़रूरत से नौ गुना पिक्सेल होते हैं, और एनिमेटेड स्टिकर लगभग तुरंत 500 KB की सीमा पार कर जाते हैं।
आपको सिर्फ़ @3x इमेज देनी होती है। Messages उसे डिवाइस के हिसाब से स्केल करता है। अपनी चुनी हुई कैटेगरी के ठीक पिक्सेल साइज़ में एक्सपोर्ट करें, कैरेक्टर को बीच में रखें और चारों ओर थोड़ा ट्रांसपेरेंट मार्जिन छोड़ें, ताकि लोग जब उसे उठाकर किसी मैसेज पर लगाएँ तो वह किनारों से न टकराए।
APNG या GIF: किसमें ट्रांसपेरेंट किनारे मुलायम रहते हैं?
APNG में। Apple की फ़ॉर्मेट टेबल में ये प्रॉपर्टी दी गई हैं:
| फ़ॉर्मेट | Transparency | एनिमेशन |
|---|---|---|
| PNG | 8-bit | No |
| APNG | 8-bit | Yes |
| GIF | सिंगल-कलर | Yes |
| JPEG | No | No |
8-bit ट्रांसपेरेंसी का मतलब है कि हर पिक्सेल में ओपेसिटी के 256 लेवल होते हैं, इसलिए एंटी-एलियास्ड आउटलाइन, हल्की छाया और ग्लो उस मैसेज बबल या फ़ोटो में घुल-मिल जाते हैं जिस पर स्टिकर लगाया जाता है। सिंगल-कलर ट्रांसपेरेंसी का मतलब है कि पैलेट का एक रंग पूरी तरह ट्रांसपेरेंट होता है और बाकी हर पिक्सेल पूरी तरह अपारदर्शी, जिससे किनारे सीढ़ीनुमा दिखते हैं और उस रंग की एक झालर रह जाती है जिस पर GIF को मैट किया गया था।

स्टिकर बबल, फ़ोटो और लाइट व डार्क दोनों मोड के ऊपर लगाए जाते हैं, इसलिए यहाँ किनारों की क्वालिटी किसी तय बैकग्राउंड की तुलना में ज़्यादा नज़र आती है। GIF तभी इस्तेमाल करें जब आपके आर्टवर्क में जान-बूझकर हार्ड पिक्सेल किनारे हों।
ट्रांसपेरेंट एनिमेशन को APNG में कैसे कन्वर्ट करें?
ffmpeg सीधे APNG लिखता है। यह टेस्ट की हुई Discord/iMessage APNG कमांड है, जिसमें scale को iMessage के regular साइज़ 408 px पर सेट किया गया है:
ffmpeg -c:v libvpx-vp9 -i character.webm -vf "fps=15,scale=408:408" -plays 0 -f apng sticker.png
-c:v libvpx-vp9को-iसे पहले रखने पर ffmpeg WebM का अल्फ़ा डिकोड करता है; डिफ़ॉल्ट VP9 डिकोडर इसे अनदेखा कर देता है।scale=408:408पैक का साइज़ तय करता है; small या large के लिए 300 या 618 इस्तेमाल करें।-plays 0से एनिमेशन हमेशा लूप होता है। FFmpeg के docs: "0 से अनंत लूप होता है, 1 पर कोई लूप नहीं होता।"-f apngके साथ.pngनाम देने पर ऐसी फ़ाइल बनती है जिसे Xcode का sticker asset catalog स्वीकार करता है।
यही कमांड scale=320:320 पर ffmpeg 7.1.1 में चलाई गई और इससे ट्रांसपेरेंसी बरकरार रखते हुए RGBA APNG बनी। GIF से कन्वर्ट करते समय शुरुआत का -c:v libvpx-vp9 हटा दें; GIF के हार्ड किनारे वैसे ही रहेंगे।
हर एनिमेटेड स्टिकर को 500 KB से कम कैसे रखें?
APNG फ़्रेम lossless तरीके से कंप्रेस होते हैं, इसलिए फ़्रेम और पिक्सेल की संख्या बढ़ने के साथ फ़ाइल साइज़ तेज़ी से बढ़ता है। अगर ls -l sticker.png 500 KB से ज़्यादा दिखाता है:
- frame rate कम करें।
fps=12याfps=10आज़माएँ। स्टिकर कम rate पर भी ठीक दिखते हैं। - क्लिप छोटी करें। रिएक्शन का मुख्य हिस्सा रखें; आमतौर पर 1.5-3 सेकंड काफ़ी होते हैं।
- छोटा पैक साइज़ इस्तेमाल करें। 300×300 में 408×408 के लगभग आधे पिक्सेल होते हैं।
- मूवमेंट सरल रखें। पूरे शरीर की मूवमेंट से हर फ़्रेम में पलक झपकने या सिर झुकाने की तुलना में ज़्यादा पिक्सेल बदलते हैं।
हर फ़ाइल जाँचें। Xcode की चेतावनी या पैक के वैलिडेशन में फ़ेल होने के लिए एक ही बड़ा स्टिकर काफ़ी है, और यह सीमा हर फ़ाइल पर लागू होती है, पूरे पैक पर नहीं।
Xcode में Sticker Pack ऐप कैसे बनाएँ?
सिर्फ़ स्टिकर वाले पैक के लिए कोई कोड नहीं चाहिए। Xcode में iOS Sticker Pack App टेम्पलेट से नया प्रोजेक्ट बनाएँ। इसमें Sticker Pack फ़ोल्डर वाला एक Stickers asset catalog होता है; अपनी APNG, GIF या PNG फ़ाइलें उसमें ड्रैग करें। पैक पर स्टिकर साइज़ (small, regular या large) वही सेट करें जो आपके एक्सपोर्ट किए गए डाइमेंशन से मेल खाता हो।
टेम्पलेट में एक iMessage App Icon सेट भी होता है, जिसे आप किसी भी दूसरे ऐप आइकन की तरह भरते हैं। फिर किसी डिवाइस या Simulator पर बिल्ड करें, Messages खोलें, और हर स्टिकर को लाइट बबल, डार्क बबल और एक फ़ोटो पर लगाकर जाँचें।
इसे किसी भी ऐप की तरह App Store Connect से रिलीज़ करें। अगर आपको कस्टम व्यवहार चाहिए, जैसे रनटाइम पर स्टिकर बनाना, तो टेम्पलेट की जगह Apple का Messages framework पूरा iMessage app extension सपोर्ट करता है।
क्या स्टिकर के लिए alt text ज़रूरी है?
हाँ। HIG कहती है: "हर स्टिकर के लिए एक लोकलाइज़्ड वैकल्पिक विवरण दें।" जब कोई स्टिकर पर पहुँचता है तो VoiceOver इसे पढ़ता है, जिससे नेत्रहीन या कम देखने वाले व्यक्ति को पता चलता है कि क्या भेजा गया। फ़ाइल नहीं, मतलब बताएँ: "रोबोट थम्स-अप दे रहा है" काम का है, "sticker_04" नहीं।
विवरण छोटे रखें और उन्हें आपके ऐप की हर सपोर्टेड भाषा में लोकलाइज़ करें, क्योंकि स्टिकर पाने वाला भेजने वाले से अलग भाषा इस्तेमाल कर सकता है।
अच्छे विवरण में कैरेक्टर और उसकी हरकत का नाम होता है, और ज़रूरत हो तो भावना का भी: "लोमड़ी हाथ हिलाकर हैलो कह रही है", "लोमड़ी हँस रही है", "लोमड़ी कंधे उचका रही है, असमंजस में"। हर स्टिकर पर पैक का नाम न दोहराएँ; VoiceOver यूज़र्स को वह हर बार सुनाई देता है। फ़ाइलों के नाम रखते समय ही विवरण लिख लें, ताकि कोई भी स्टिकर बिना विवरण के रिलीज़ न हो।
Charmotion कैरेक्टर एनिमेशन से शुरुआत कैसे करें?
Charmotion अपलोड किए गए कैरेक्टर, मैस्कॉट या लोगो को कुछ ही मिनटों में .riv फ़ाइल के रूप में 17 एनिमेशन में बदलता है। 1080×1080 पर ट्रांसपेरेंट WebM (VP9 alpha) और MOV (HEVC alpha), MP4 और 480 px GIF ज़रूरत पर एक्सपोर्ट होते हैं, लगभग एक मिनट में। यह iMessage पैक एक्सपोर्ट नहीं करता। इसके 480 px GIF का बैकग्राउंड सॉलिड है, इसलिए साफ़ किनारों वाले ट्रांसपेरेंट स्टिकर के लिए ट्रांसपेरेंट WebM (पेड प्लान, $20/माह से) को ऊपर के कमांड से 300, 408 या 618 px के APNG में बदलें।
1080×1080 का सोर्स बिना अपस्केल किए large 618×618 साइज़ भी कवर कर लेता है। success, yes और no जैसे छोटे वन-शॉट रिएक्शन regular साइज़ पर APNG के रूप में आराम से 500 KB से कम रहते हैं; लंबे लूपिंग मूड को सीमा में रखने के लिए कम frame rate या small साइज़ की ज़रूरत पड़ सकती है।
एनिमेटेड iMessage स्टिकर पैक कैसे बनाएँ
- साइज़ चुनें. पूरे पैक के लिए एक ही साइज़ चुनें: small (300×300), regular (408×408) या large (618×618) @3x पिक्सेल।
- APNG में बदलें. ffmpeg चलाएँ:
-c:v libvpx-vp9को-iसे पहले रखें,scaleको अपने साइज़ पर सेट करें, और-plays 0तथा-f apngजोड़ें। - साइज़ जाँचें. पक्का करें कि हर फ़ाइल 500 KB या उससे छोटी हो; अगर नहीं है, तो fps कम करें या क्लिप छोटी करें।
- Xcode प्रोजेक्ट बनाएँ. Sticker Pack App टेम्पलेट से शुरू करें और फ़ाइलों को Sticker Pack फ़ोल्डर में ड्रैग करें।
- विवरण जोड़ें. VoiceOver के लिए हर स्टिकर को एक लोकलाइज़्ड वैकल्पिक विवरण दें।
- Messages में टेस्ट करें. iPhone या iPad पर हर स्टिकर को लाइट और डार्क बबल्स तथा फ़ोटो के ऊपर चेक करें।
अक्सर पूछे जाने वाले सवाल
क्या iMessage स्टिकर एनिमेटेड हो सकते हैं?
हाँ। Apple की HIG में एनिमेटेड फ़ॉर्मेट के रूप में APNG और GIF दिए गए हैं। APNG स्मूद किनारों के लिए 8-बिट ट्रांसपेरेंसी सपोर्ट करता है, जबकि GIF सिर्फ़ एक रंग की ट्रांसपेरेंसी सपोर्ट करता है। स्टैटिक स्टिकर PNG या JPEG हो सकते हैं, हालाँकि JPEG में ट्रांसपेरेंसी नहीं होती। हर स्टिकर फ़ाइल 500 KB या उससे छोटी होनी चाहिए, चाहे वह एनिमेटेड हो या नहीं।
क्या मैं एक पैक में छोटे और बड़े स्टिकर मिला सकता हूँ?
नहीं। Apple की गाइडलाइंस के अनुसार सभी स्टिकर एक ही साइज़ में तैयार करने चाहिए और एक स्टिकर पैक में अलग-अलग साइज़ नहीं मिलाने चाहिए। small (300×300), regular (408×408) या large (618×618) पिक्सेल में से एक चुनें, और Xcode में जोड़ने से पहले हर फ़ाइल ठीक उसी साइज़ में एक्सपोर्ट करें।
क्या iMessage स्टिकर पैक Mac पर काम करते हैं?
नहीं। Apple की Human Interface Guidelines के अनुसार iMessage ऐप और स्टिकर macOS, tvOS, visionOS या watchOS में सपोर्टेड नहीं हैं। अपना पैक iPhone और iPad पर Messages के लिए बनाएँ और टेस्ट करें, क्योंकि लोग वहीं App Store for Messages ब्राउज़ करते हैं और स्टिकर पैक जोड़ते हैं।
इस गाइड से झटपट जवाब
स्रोत
- Human Interface Guidelines: iMessage apps and stickers, Apple Developer
- FFmpeg formats documentation (GIF and APNG muxers), FFmpeg
- ffmpeg loses WebM alpha with the default VP9 decoder, VideoHelp Forum