PNG से Base64 कन्वर्टर

PNG फ़ाइलों को उनकी पारदर्शिता बरकरार रखते हुए Base64 में एनकोड करें। कोई PNG खींचकर छोड़ें या पेस्ट करें और उसे data URI, HTML img टैग, CSS बैकग्राउंड या Markdown इमेज के रूप में कॉपी करें।

पूरी तरह आपके ब्राउज़र में चलता है। कुछ भी अपलोड नहीं होता।

उपयोग कैसे करें

  1. कोई PNG ड्रॉप एरिया पर खींचकर छोड़ें, चुनने के लिए क्लिक करें, या क्लिपबोर्ड से कोई स्क्रीनशॉट पेस्ट करें।
  2. मूल PNG बाइट एनकोड करने के लिए फ़ॉर्मैट न बदलें, या किसी बड़ी इमेज को छोटा करने के लिए “अधिकतम चौड़ाई” सेट करें।
  3. इमेज के लिए दिखाए गए मूल आकार की तुलना एनकोड किए गए आकार से करें।
  4. data URI, रॉ Base64, img टैग, CSS या Markdown आउटपुट कॉपी या डाउनलोड करें।

PNG और Base64

PNG (Portable Network Graphics, MIME टाइप image/png) पूरे अल्फ़ा चैनल वाला एक लॉसलेस रास्टर फ़ॉर्मैट है, इसलिए आइकन, लोगो, डायग्राम और स्क्रीनशॉट के लिए आमतौर पर यही चुना जाता है। हर PNG फ़ाइल एक ही 8-बाइट सिग्नेचर से शुरू होती है, इसलिए हर PNG data URI भी एक ही तरह शुरू होता है: data:image/png;base64,iVBORw0KGgo...।

Base64 पिक्सेल में कोई बदलाव नहीं करता। स्ट्रिंग को डिकोड करने पर बाइट-दर-बाइट वही फ़ाइल वापस मिलती है, उन्हीं रंगों और उन्हीं पारदर्शी हिस्सों के साथ।

PNG data URI के अच्छे उपयोग

  • इंटरफ़ेस के छोटे आइकन और लोगो, जिन्हें पारदर्शी बैकग्राउंड चाहिए।
  • आत्मनिर्भर HTML रिपोर्ट, बग रिपोर्ट या एक्सपोर्ट किए गए दस्तावेज़ों के अंदर स्क्रीनशॉट।
  • सर्वर पर बनाए गए चार्ट और QR कोड, जो JSON रिस्पॉन्स में लौटाए जाते हैं।
  • canvas.toDataURL() से बनी इमेज, जो डिफ़ॉल्ट रूप से पहले से ही PNG data URI देता है।

फ़ोटो का मामला अलग है। PNG उन्हें लॉसलेस तरीक़े से सहेजता है और फ़ाइलें बड़ी हो जाती हैं; JPEG या WebP से कहीं छोटी स्ट्रिंग मिलेगी।

एनकोड करने से पहले PNG को छोटा करें

PNG से हटाया गया हर बाइट Base64 के लगभग 1.33 अक्षर बचाता है। पहले फ़ाइल को oxipng या zopflipng (लॉसलेस) या pngquant (पैलेट घटाता है) जैसे किसी ऑप्टिमाइज़र से गुज़ारें। पिक्सेल आकार भी जाँचें: अपने डिस्प्ले आकार से तीन गुना बड़ा एक्सपोर्ट किया गया आइकन आमतौर पर “अधिकतम चौड़ाई” विकल्प से छोटा किया जा सकता है।

WebP में कन्वर्ट करने पर पारदर्शिता बनी रहती है और फ़ाइल अक्सर काफ़ी छोटी हो जाती है। JPEG में कन्वर्ट करने पर पारदर्शिता हट जाती है, यानी पारदर्शी हिस्से एक ठोस रंग बन जाते हैं। ब्राउज़र में दोबारा PNG में एनकोड करने से कंप्रेशन ऑप्टिमाइज़ नहीं होता, इसलिए परिणाम किसी अच्छी तरह ऑप्टिमाइज़ की गई मूल फ़ाइल से बड़ा हो सकता है; कॉपी करने से पहले आकारों की तुलना करें।

आउटपुट का उपयोग

<img src="data:image/png;base64,iVBORw0KGgo..." width="24" height="24" alt="Settings">

.icon-settings {
  background: url("data:image/png;base64,iVBORw0KGgo...") no-repeat center / 24px 24px;
}

# कमांड लाइन: GNU coreutils / macOS
base64 -w 0 icon.png
base64 -i icon.png

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

क्या Base64 PNG की पारदर्शिता बनाए रखता है?

हाँ। Base64 फ़ाइल के बाइट को बिना बदले एनकोड करता है, इसलिए अल्फ़ा चैनल बना रहता है। पारदर्शिता तभी खोती है जब आप इमेज को JPEG में कन्वर्ट करते हैं।

हर PNG Base64 स्ट्रिंग iVBORw0KGgo से ही क्यों शुरू होती है?

ये अक्षर PNG फ़ाइल सिग्नेचर का Base64 रूप हैं। अगर PNG होने का दावा करने वाली कोई स्ट्रिंग किसी और तरह शुरू होती है, तो वह कोई दूसरा फ़ॉर्मैट है या ख़राब हो चुकी है।

क्या स्क्रीनशॉट सीधे पेस्ट किया जा सकता है?
हाँ। स्क्रीनशॉट कॉपी करें और उसे पेज पर पेस्ट करें। ब्राउज़र आमतौर पर पेस्ट किए गए स्क्रीनशॉट PNG के रूप में देते हैं, इसलिए आपको data:image/png परिणाम मिलता है।
कितनी बड़ी PNG को Base64 के रूप में एम्बेड करना चाहिए?

एक आम नियम है कुछ किलोबाइट, लगभग 10 KB तक। बड़ी इमेज को अलग फ़ाइलों के रूप में सर्व करना बेहतर है, जिन्हें ब्राउज़र कैश कर सके और समानांतर लोड कर सके।