BMP फ़ाइल के अंदर क्या होता है
BMP, यानी बिटमैप, वह इमेज फ़ॉर्मेट है जिसे Windows अपने शुरुआती वर्ज़न से इस्तेमाल करता आया है। यह उतना ही सरल है जितनी कोई इमेज फ़ाइल हो सकती है: तस्वीर का छोटा-सा विवरण, और उसके बाद एक-एक करके हर पिक्सेल का रंग।
हेडर, पैलेट, पिक्सेल
BMP की शुरुआत 14-बाइट के फ़ाइल हेडर और एक इन्फ़ॉर्मेशन हेडर से होती है, जिसमें चौड़ाई, ऊँचाई और कलर डेप्थ दर्ज होती है। 256 या उससे कम रंगों वाली इमेज इसके बाद अपने रंग एक पैलेट में लिखती हैं। फिर पिक्सेल आते हैं, पंक्ति-दर-पंक्ति, आम तौर पर तस्वीर की सबसे निचली पंक्ति से शुरू होकर ऊपर की ओर।
बिट डेप्थ
बिट डेप्थ तय करती है कि एक पिक्सेल में कितने रंग आ सकते हैं। 1-बिट बिटमैप ब्लैक एंड व्हाइट होते हैं, 4-बिट वालों में 16 रंग, 8-बिट में 256 और 24-बिट फ़ाइलों में 16.7 मिलियन रंग होते हैं। 32-बिट BMP एक चौथा बाइट जोड़ता है, जिसे कुछ प्रोग्राम ट्रांसपेरेंसी के लिए इस्तेमाल करते हैं और कुछ बस पैडिंग के तौर पर छोड़ देते हैं।
BMP आज भी क्यों मौजूद है
इतना सरल होने की वजह से कोई भी प्रोग्राम या डिवाइस BMP आसानी से लिख सकता है। पुराने गेम, Windows यूटिलिटी, स्प्राइट एडिटर और एम्बेडेड डिस्प्ले आज भी इसे बनाते हैं, इसीलिए BMP से PNG कन्वर्ज़न आज भी एक आम काम है।
BMP फ़ाइलें इतनी बड़ी क्यों होती हैं
ज़्यादातर BMP बिल्कुल भी कंप्रेस्ड नहीं होते। फ़ाइल का साइज़ सीधे-सीधे चौड़ाई × ऊँचाई × प्रति पिक्सेल बाइट होता है, साथ में थोड़ी-सी पैडिंग।
सीधा हिसाब
फ़ुल-HD स्क्रीनशॉट 1920 × 1080 पिक्सेल का होता है। 24 बिट पर यह 3 बाइट प्रति पिक्सेल, यानी लगभग 6.2 MB है, चाहे स्क्रीन पर भरी-पूरी फ़ोटो हो या ख़ाली सफ़ेद पेज। वही स्क्रीनशॉट PNG में अक्सर कुछ सौ किलोबाइट का होता है।
पंक्ति की पैडिंग
पिक्सेल की हर पंक्ति को 4 बाइट के गुणज तक पैड किया जाता है। बड़ी इमेज में इससे ज़्यादा फ़र्क़ नहीं पड़ता, पर इससे पता चलता है कि BMP तस्वीर को कितने शब्दशः सेव करता है: बाइट-दर-बाइट, जगह बचाने की कोई कोशिश किए बिना।
कंप्रेस्ड BMP होते हैं, पर कम ही
यह फ़ॉर्मेट 4- और 8-बिट इमेज के लिए सरल रन-लेंथ कंप्रेशन की अनुमति देता है, जो बड़े सपाट हिस्सों में मदद करता है। ज़्यादातर प्रोग्राम इसे इस्तेमाल नहीं करते, और 24-बिट बिटमैप तो इसे इस्तेमाल कर ही नहीं सकते।
BMP को PNG में बदलने से यह बर्बादी एक भी पिक्सेल छुए बिना हट जाती है, इसीलिए PNG अक्सर 80–95% छोटी होती है। नतीजों की सूची हर फ़ाइल के लिए ठीक-ठीक बचत दिखाती है।
3 स्टेप में BMP को PNG में कैसे बदलें
अपनी BMP फ़ाइलें ड्रॉप करें
एक या ज़्यादा .bmp फ़ाइलें डैश वाले हिस्से पर ड्रैग करें, या ब्राउज़ करने के लिए क्लिक करें। हर फ़ाइल आपके ब्राउज़र में पढ़ी जाती है; कुछ भी अपलोड नहीं होता।
PNG चुना रहने दें
PNG डिफ़ॉल्ट है और लॉसलेस है। अगर आपके बिटमैप शुद्ध मैजेंटा पर बने स्प्राइट हैं, तो "मैजेंटा (#FF00FF) को ट्रांसपेरेंट बनाएँ" पर टिक करें।
PNG फ़ाइलें डाउनलोड करें
किसी फ़ाइल के आगे "डाउनलोड" पर क्लिक करें, या "सभी ZIP में डाउनलोड करें" चुनें। हर नतीजा बिटमैप की बिट डेप्थ और यह दिखाता है कि PNG कितनी छोटी है।
एक या ज़्यादा BMP फ़ाइलें ड्रॉप करें।
PNG रहने दें; स्प्राइट के लिए मैजेंटा विकल्प चालू करें।
हर PNG अलग से डाउनलोड करें या सभी एक ZIP में।
BMP से PNG लॉसलेस है — जानिए क्यों
PNG कुछ भी फेंके बिना कंप्रेस करता है। यह दोहराव ढूँढता है, जैसे एक जैसे पिक्सेल की कोई पंक्ति या बार-बार आने वाला पैटर्न, और उसे एक ही बार सेव करता है।
वही पिक्सेल, छोटी फ़ाइल
PNG में बदला गया BMP डिकोड होने पर ठीक वही पिक्सेल देता है जो ओरिजिनल बिटमैप में थे। रंग, किनारे और टेक्स्ट बिल्कुल एक जैसे रहते हैं, जो स्क्रीनशॉट, यूज़र इंटरफ़ेस मॉक-अप और पिक्सेल आर्ट के लिए ज़रूरी है, जहाँ एक भी बदला हुआ पिक्सेल नज़र आ जाता है।
पैलेट बिटमैप पैलेट इमेज ही रहते हैं
1-, 4- और 8-बिट बिटमैप अधिकतम 256 रंगों का पैलेट इस्तेमाल करते हैं। यह कन्वर्टर उन्हें फ़ुल कलर में फैलाने के बजाय पैलेट PNG के रूप में ही सेव करता है, हर पिक्सेल के लिए एक बाइट। इससे PNG जितनी हो सके उतनी छोटी रहती है।
32-बिट बिटमैप का क्या?
जब कोई 32-बिट BMP ट्रांसपेरेंसी चैनल घोषित करता है और आपका ब्राउज़र उसे पढ़ लेता है, तो PNG ट्रांसपेरेंसी बनाए रखती है। हालाँकि कई प्रोग्राम चौथे बाइट को सिर्फ़ पैडिंग के रूप में लिखते हैं, और तब बिटमैप पूरी तरह अपारदर्शी होता है।
मैजेंटा बैकग्राउंड: #FF00FF को असली ट्रांसपेरेंसी में बदलना
गेम, एमुलेटर और पुराने Windows टूलबार से आई BMP फ़ाइलों में अक्सर चटक गुलाबी बैकग्राउंड दिखता है। यह जान-बूझकर किया गया है: जब ट्रांसपेरेंसी वाले फ़ॉर्मेट आम नहीं थे, तब डेवलपर आर-पार दिखने वाले हिस्से को शुद्ध मैजेंटा से रंगते थे, एक ऐसा रंग जो आर्टवर्क में लगभग कभी इस्तेमाल नहीं होता, और प्रोग्राम को उसे छोड़ देने के लिए कहते थे।
एक क्लिक में ट्रांसपेरेंट PNG
"मैजेंटा (#FF00FF) को ट्रांसपेरेंट बनाएँ" पर टिक करें, और ठीक उसी रंग का हर पिक्सेल PNG में ट्रांसपेरेंट हो जाता है। नतीजों की सूची गिनकर बताती है कि कितने पिक्सेल बदले गए, ताकि आप देख सकें कि यह काम कर गया।
सिर्फ़ सटीक मिलान
सिर्फ़ शुद्ध #FF00FF बदला जाता है। लगभग मैजेंटा जैसे शेड, जैसे एंटी-एलियास्ड किनारे, जैसे हैं वैसे ही रहते हैं, इसलिए यह विकल्प आर्टवर्क के किसी हिस्से को कभी नहीं खाता।
कुछ गेम कोई दूसरा की-कलर इस्तेमाल करते थे, जैसे शुद्ध हरा या काला। यह विकल्प मैजेंटा संभालता है, जो अब तक का सबसे आम चुनाव है; बाक़ी की-कलर किसी इमेज एडिटर में हटाना बेहतर है।
BMP बनाम PNG: एक नज़र में
| BMP | PNG | |
|---|---|---|
| कंप्रेशन | आम तौर पर कोई नहीं | लॉसलेस (Deflate) |
| आम स्क्रीनशॉट का साइज़ | कई मेगाबाइट | कुछ सौ किलोबाइट |
| ट्रांसपेरेंसी | कम ही, सपोर्ट असंगत | पूरा अल्फ़ा चैनल |
| ब्राउज़र और ऐप में खुलता है | ज़्यादातर, पर वेबसाइटें शायद ही स्वीकार करती हैं | हर जगह |
| सबसे उपयुक्त | सरल प्रोग्राम और डिवाइस | स्क्रीनशॉट, आइकन, ग्राफ़िक्स, वेब |
कब BMP से PNG सही विकल्प है
जब भी इमेज में तीखे किनारे, सपाट रंग या टेक्स्ट हो, PNG ही BMP की स्वाभाविक जगह लेता है।
PNG के लिए आदर्श
- पुराने Windows टूल के स्क्रीनशॉट और ऐप विंडो।
- आइकन, कर्सर और पिक्सेल आर्ट।
- डायग्राम, चार्ट और लोगो।
- स्प्राइट शीट और गेम टेक्सचर, ज़रूरत हो तो मैजेंटा विकल्प के साथ।
कब JPG बेहतर है
फ़ोटो और स्कैन की गई तस्वीरों में बारीक नॉइज़ होता है, जिसे लॉसलेस कंप्रेशन ज़्यादा छोटा नहीं कर पाता। उनके लिए BMP से JPG बिना किसी दिखने वाले फ़र्क़ के कई गुना छोटी फ़ाइल बनाता है।
किसी वजह से BMP रखना
कुछ डिवाइस, बूट स्क्रीन और माइक्रोकंट्रोलर डिस्प्ले सिर्फ़ BMP इनपुट स्वीकार करते हैं। उनके लिए ओरिजिनल फ़ाइल रखें और बाक़ी हर जगह PNG इस्तेमाल करें।
BMP को PNG में बदलने के बाद
PNG को और छोटा करने के लिए उसे PNG कंप्रेस करें से गुज़ारें। वेबसाइटों के लिए PNG से WebP ट्रांसपेरेंसी बरकरार रखते हुए और भी छोटी फ़ाइल देता है, और इमेज रीसाइज़ करें सटीक आयाम सेट करता है।
फ़ोटो के लिए इसके बजाय BMP से JPG इस्तेमाल करें। बाक़ी सभी फ़ॉर्मेट जोड़ियाँ इमेज कन्वर्टर में मौजूद हैं।