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

Base64 टेक्स्ट को असली PNG फ़ाइल में बदलें। केवल स्ट्रिंग या data:image/png;base64 URI पेस्ट करें, पारदर्शिता के साथ उसका पूर्वावलोकन देखें, और उसे जैसा है वैसा सहेजें या दूसरे इमेज फ़ॉर्मैट को PNG में बदलें।

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

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

  1. Base64 स्ट्रिंग या पूरा data:image/png;base64 URI पेस्ट करें।
  2. पूर्वावलोकन जाँचें। पारदर्शी हिस्से चेकरबोर्ड पैटर्न के ऊपर दिखते हैं।
  3. डाउनलोड फ़ॉर्मैट PNG ही रहने दें। अगर डेटा JPEG, WebP या किसी अन्य फ़ॉर्मैट में है, तो उसे आपके ब्राउज़र में ही PNG में कन्वर्ट किया जाता है।
  4. .png फ़ाइल डाउनलोड करें।

Base64 PNG कहाँ से आते हैं

Base64 के रूप में आपको सबसे ज़्यादा PNG फ़ॉर्मैट ही मिलेगा। बिना आर्ग्युमेंट के canvas.toDataURL() कॉल करने पर PNG data URI मिलता है। ब्राउज़र ऑटोमेशन टूल स्क्रीनशॉट को Base64 PNG के रूप में लौटाते हैं, जैसे Puppeteer में page.screenshot({ encoding: 'base64' }) या Selenium में get_screenshot_as_base64()। चार्ट रेंडरर, QR कोड जनरेटर और इमेज जनरेशन API अक्सर तस्वीर को JSON के अंदर एक Base64 फ़ील्ड के रूप में लौटाते हैं।

PNG स्ट्रिंग को पहचानना आसान है: यह हमेशा iVBORw0KGgo से शुरू होती है, जो 89 50 4E 47 से शुरू होने वाले 8-बाइट PNG सिग्नेचर का एनकोड किया गया रूप है। इसके बाद AAAANSUhEUg आता है, जो चौड़ाई और ऊँचाई रखने वाले IHDR चंक की शुरुआत है।

JSON से कॉपी की गई स्ट्रिंग को पहले एक बार जाँच लें। उदाहरण के लिए, PHP का json_encode डिफ़ॉल्ट रूप से फ़ॉरवर्ड स्लैश को एस्केप करता है, इसलिए PHP API से आया PNG \/ क्रमों के साथ आ सकता है। पेस्ट करने से पहले इन्हें / से बदलें और आसपास के कोट हटा दें।

PNG के रूप में क्यों सहेजें

PNG बिना कोई विवरण खोए कंप्रेस करता है और पूरा अल्फ़ा चैनल रखता है, इसलिए हल्की परछाइयाँ और एंटी-एलियास किए गए किनारे जस के तस रहते हैं। यही वजह है कि स्क्रीनशॉट, इंटरफ़ेस एलिमेंट, डायग्राम और टेक्स्ट वाली किसी भी चीज़ के लिए यह स्वाभाविक विकल्प है। फ़ोटो के लिए JPG या WebP कहीं छोटी फ़ाइलें बनाते हैं।

JPEG या WebP को PNG में बदलने पर स्क्रीन पर दिखने वाली तस्वीर ठीक वैसी ही रहती है, लेकिन लॉसी कंप्रेशन जो विवरण पहले ही हटा चुका है, वह वापस नहीं आता, और PNG आमतौर पर स्रोत फ़ाइल से बड़ा होता है।

कोड में Base64 PNG सहेजें

# Python
import base64
with open('screenshot.png', 'wb') as f:
    f.write(base64.b64decode(b64_string))

// ब्राउज़र: data URI से Blob, बिना मैन्युअल डिकोडिंग के
const blob = await (await fetch(dataUri)).blob();
const url = URL.createObjectURL(blob);

उल्टी दिशा में बदलना है? PNG से Base64 किसी फ़ाइल को स्ट्रिंग या data URI में एनकोड करता है।

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

कैसे पता करें कि कोई Base64 स्ट्रिंग PNG है?
PNG डेटा हमेशा iVBORw0KGgo से शुरू होता है। यह टूल सिग्नेचर बाइट को सीधे भी पढ़ता है, इसलिए data URI में कुछ और लिखा हो, तब भी यह असली फ़ॉर्मैट बताता है।
क्या PNG में बदलने से गुणवत्ता घटती है?

नहीं। PNG लॉसलेस है, इसलिए पिक्सेल ठीक वैसे ही सहेजे जाते हैं जैसे ब्राउज़र ने उन्हें डिकोड किया था। अगर कोई नुकसान है, तो वह स्रोत फ़ाइल में पहले ही हो चुका होगा।

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

हाँ। PNG आउटपुट पूरा अल्फ़ा चैनल रखता है। JPEG आउटपुट पारदर्शी हिस्सों को सफ़ेद रंग से भर देता है, और GIF आउटपुट हर पिक्सेल को या तो पूरी तरह पारदर्शी या पूरी तरह अपारदर्शी बना देता है।

मेरा PNG data URI टूटी हुई इमेज दिखाता है। क्या गड़बड़ है?
आमतौर पर स्ट्रिंग कट गई होती है। स्प्रेडशीट सेल (Excel 32,767 अक्षरों पर रुक जाता है), लॉग लाइनें और डेटाबेस कॉलम अक्सर लंबे मानों को काट देते हैं। पेस्ट करने से पहले आसपास के कोट और \/ जैसे JSON एस्केप भी हटा दें।