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

BMP को PNG में बदलें

BMP हर पिक्सेल को कच्चा रखता है — PNG वही पिक्सेल लॉसलेस तरीक़े से, साइज़ के छोटे-से हिस्से में रखता है। वही इमेज, नया फ़ॉर्मैट, कुछ भी स्टोर नहीं।

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

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

1

अपनी BMP फ़ाइलें जोड़ें

जितनी चाहें .bmp फ़ाइलें पेज पर छोड़ें।

2

कन्वर्ट करें

हर फ़ाइल लॉसलेस कंप्रेस की गई PNG बन जाती है — बिल्कुल वही पिक्सेल, कहीं छोटी फ़ाइल।

3

डाउनलोड करें

एक-एक करके या ZIP के रूप में सेव करें।

वही पिक्सेल, साइज़ का छोटा-सा हिस्सा

BMP आम तौर पर बिल्कुल कंप्रेस नहीं होता। हर पिक्सेल जस का तस लिखा जाता है, हर एक के तीन या चार बाइट, और हर पंक्ति चार-बाइट की सीमा तक भरी जाती है — इसी वजह से 1920×1080 का स्क्रीनशॉट लगभग 8 MB का होता है और बारह-मेगापिक्सेल की फ़ोटो लगभग 36 MB की। PNG ठीक वही पिक्सेल रखता है और उन्हें लॉसलेस कंप्रेस करता है, इसलिए तस्वीर में कुछ नहीं बदलता और फ़ाइल आम तौर पर पांच से बीस गुना छोटी हो जाती है। बड़े सपाट हिस्सों वाले स्क्रीनशॉट या डायग्राम के लिए अनुपात इसके ऊपरी सिरे पर होता है। यह उन गिने-चुने कन्वर्ज़न में से है जिसमें कोई समझौता नहीं।

नतीजे में एक बात जांचने लायक है: 32-बिट BMP में ट्रांसपेरेंसी भरोसेमंद नहीं होती, और इसकी वजह यहां किया गया कुछ भी नहीं है। Windows बिटमैप के मूल हेडर में अल्फ़ा चैनल की कोई धारणा नहीं थी, इसलिए हर पिक्सेल का चौथा बाइट बस इस्तेमाल नहीं होता था; बाद के हेडर ने इसे ठीक से परिभाषित किया, लेकिन बहुत सारे सॉफ़्टवेयर अब भी पुराना रूप लिखते हैं और बहुत सारे डिकोडर अब भी नया रूप अनदेखा करते हैं। इसलिए जो BMP उसे बनाने वाले प्रोग्राम में ट्रांसपेरेंट दिखता है, वह अपारदर्शी डिकोड हो सकता है, अल्फ़ा बाइट को भराव (पैडिंग) समझकर। अगर यह मायने रखता है, तो भरोसा करने से पहले PNG देख लें।

पंक्तियां दूसरी अजीब बात हैं। BMP परंपरा से अपनी पंक्तियां नीचे से ऊपर रखता है — यह फ़ैसला शुरुआती ग्राफ़िक्स हार्डवेयर के मेमोरी संभालने के तरीक़े से आया — और ऊपर से नीचे वाली फ़ाइल को नेगेटिव ऊंचाई से दर्शाता है। डिकोडर दोनों संभाल लेते हैं, इसलिए व्यवहार में यह दिखता नहीं — बस इसी वजह से आधी लिखी या कटी हुई BMP कटी हुई दिखने के बजाय उलटी दिखती है।

Windows के आम वैरिएंट सब कन्वर्ट होते हैं। फ़ॉर्मैट के अनोखे कोने — RLE-कंप्रेस्ड 4-बिट और 8-बिट बिटमैप, नब्बे के दशक की शुरुआत के OS/2 हेडर, और एम्बेडेड-JPEG वाला दुर्लभ रूप — डिकोडर पर निर्भर हैं, और अगर इनमें से कोई रिजेक्ट होता है तो वह गड़बड़ तस्वीर बनाने के बजाय साफ़ बता देगा।

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

PNG को और छोटा करने के लिए oxipng -o 4 out.png या optipng अक्सर एक भी पिक्सेल बदले बिना दस से तीस प्रतिशत और घटा देते हैं, और pngquant पैलेट तक घटाकर काफ़ी आगे जाता है — जो लॉसी है, और स्क्रीनशॉट या डायग्राम के लिए आम तौर पर दिखता नहीं।

पूरे फ़ोल्डर के लिए, ImageMagick का magick mogrify -format png *.bmp एक लाइन में सब कुछ कन्वर्ट कर देता है, और बहुत बड़ी इमेज पर libvips यही काम कहीं कम मेमोरी में करता है। अगर BMP ग्राफ़िक्स के बजाय फ़ोटो हैं, तो PNG पूरी तरह ग़लत मंज़िल है — JPG दसवें हिस्से के साइज़ की होगी, क्वालिटी के ऐसे फ़र्क़ के साथ जिसे कोई देख नहीं सकता।

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

क्या क्वालिटी ज़रा भी कम होती है?

बिल्कुल नहीं — PNG लॉसलेस है। PNG ठीक वही पिक्सेल देती है जो BMP में हैं; बस बेकार के बाइट हट जाते हैं।

यह कितनी छोटी होगी?

कंटेंट के हिसाब से आम तौर पर 50-95% छोटी — BMP असल में अनकंप्रेस्ड होते हैं, इसलिए लगभग कुछ भी उनसे बेहतर है।

आजकल BMP आते ही कहां से हैं?

पुराने टूल्स से लिए गए Windows स्क्रीनशॉट, MS Paint, वैज्ञानिक उपकरण, एम्बेडेड सिस्टम और पुराने सॉफ़्टवेयर। यह फ़ॉर्मैट Windows 3.0 के ज़माने का है।

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

नहीं — कन्वर्ज़न कुछ भी स्टोर नहीं करता।

क्या PNG वह सब रख सकता है जो BMP रखता है?

हां, और उससे ज़्यादा — PNG असली ट्रांसपेरेंसी जोड़ता है, जो BMP व्यवहार में कभी नहीं रख पाया।

ध्यान दें: BMP के अनोखे वैरिएंट (RLE-कंप्रेस्ड, OS/2 हेडर) आपके ब्राउज़र के डिकोडर पर निर्भर हैं; Windows के आम BMP सब चलते हैं।

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

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