बीएमपी फाइल क्या है?
एक्सटेंशन वाली फ़ाइलें .BMP बिटमैप छवि फ़ाइलों का प्रतिनिधित्व करती हैं जिनका उपयोग बिटमैप डिजिटल छवियों को संग्रहीत करने के लिए किया जाता है। ये चित्र ग्राफिक्स एडेप्टर से स्वतंत्र हैं और इन्हें डिवाइस इंडिपेंडेंट बिटमैप (DIB) फ़ाइल स्वरूप भी कहा जाता है। यह स्वतंत्रता माइक्रोसॉफ्ट विंडोज और मैक जैसे कई प्लेटफार्मों पर फ़ाइल खोलने के उद्देश्य से कार्य करती है। बीएमपी फ़ाइल प्रारूप डेटा को दो-आयामी डिजिटल छवियों के रूप में मोनोक्रोम के साथ-साथ विभिन्न रंग गहराई के साथ रंग प्रारूप में संग्रहीत कर सकता है।
बीएमपी फ़ाइल प्रारूप निर्दिष्टीकरण
डिवाइस स्वतंत्र बिटमैप्स उपकरणों और अनुप्रयोगों के बीच बिटमैप्स का आदान-प्रदान करने में सहायता के रूप में कार्य करते हैं। इस फ़ाइल प्रारूप के निरंतर विकास के कारण, शीर्षकों में निहित जानकारी बिटमैप के संस्करण के अनुसार भिन्न हो सकती है। एक एकल बिटमैप फ़ाइल में एक विशिष्ट क्रम में निश्चित और चर-आकार की संरचनाएँ होती हैं।
बिटमैप फ़ाइल में संरचनाएं निम्न क्रम में व्यवस्थित होती हैं:
संरचना | वैकल्पिक | आकार | उद्देश्य |
---|---|---|---|
फ़ाइल हैडर | नहीं | 14 | बिटमैप छवि फ़ाइल के बारे में सामान्य जानकारी संग्रहीत करने के लिए |
DIB Header | No | Fixed-Size | बिटमैप छवि के बारे में विस्तृत जानकारी संग्रहीत करने और पिक्सेल प्रारूप को परिभाषित करने के लिए |
अतिरिक्त बिट मास्क | हां | 12 या 16 बाइट्स | पिक्सेल प्रारूप को परिभाषित करने के लिए |
कलर पैलेट | सेमी-ऑप्शनल | वेरिएबल-साइज़ | बिटमैप इमेज डेटा द्वारा उपयोग किए जाने वाले रंगों को परिभाषित करने के लिए |
Gap1 | हां | परिवर्तनीय-आकार | संरचना संरेखण |
Pixel Array | No | Variable-size | Pixel फ़ॉर्मैट को DIB हेडर या एक्स्ट्रा बिट मास्क द्वारा परिभाषित किया जाता है। |
Gap2 | हां | परिवर्तनीय-आकार | संरचना संरेखण |
ICC Color Profile | Yes | Variable-size | रंग प्रबंधन के लिए रंग प्रोफ़ाइल को परिभाषित करने के लिए |
जब एक बिटमैप छवि को स्मृति में लोड किया जाता है, तो यह एक डीआईबी संरचना बन जाती है, जिसका उपयोग विंडोज़ द्वारा अपने जीडीआई एपीआई के माध्यम से किया जाता है। फ़ाइल हेडर इस डेटा संरचना का हिस्सा नहीं है। रंग में 16-बिट प्रविष्टियां भी शामिल हो सकती हैं जो स्पष्ट आरजीबी रंग परिभाषाओं के बजाय वर्तमान में संदर्भित पैलेट में अनुक्रमित होती हैं। आइए इनमें से कुछ पर विस्तार से नज़र डालें, खासकर हेडर पर।
बिटमैप फ़ाइल हैडर
एक बिटमैप फ़ाइल हैडर फ़ाइल की पहचान करने के लिए उपयोग किए जाने वाले अन्य फ़ाइल शीर्षलेखों के समान है। चूंकि बीएमपी फ़ाइल प्रारूप के विभिन्न रूप हैं, बीएमपी फ़ाइल प्रारूप के पहले 2 बाइट अक्षर “बी” हैं और फिर एएससीआईआई एन्कोडिंग में चरित्र “एम” हैं। सभी पूर्णांक मान छोटे-अंत प्रारूप में संग्रहीत होते हैं।
ऑफ़सेट हेक्स | ऑफ़सेट दिसंबर | आकार | उद्देश्य |
---|---|---|---|
00 | 0 | 2 बाइट्स | बीएमपी और डीआईबी फ़ाइल की पहचान करने के लिए उपयोग किया जाने वाला हेडर फ़ील्ड हेक्साडेसिमल में 0x42 0x4D है, जो एएससीआईआई में बीएम के समान है। यह संभावित मानों का अनुसरण कर सकता है। * बीएम - विंडोज 3.1x, 95, एनटी, … कलर आइकॉन * CP - OS/2 कास्ट कलर पॉइंटर * IC - OS/2 स्ट्रक्चर आइकॉन * PT - OS/2 पॉइंटर |
02 | 2 | 4 बाइट्स | BMP फ़ाइल का आकार बाइट्स में |
06 | 6 | 2 बाइट्स | आरक्षित; वास्तविक मूल्य छवि बनाने वाले एप्लिकेशन पर निर्भर करता है |
08 | 8 | 2 बाइट्स | आरक्षित; वास्तविक मूल्य छवि बनाने वाले एप्लिकेशन पर निर्भर करता है |
0A | 10 | 4 बाइट्स | बाइट का ऑफसेट, यानी शुरुआती पता, जहां बिटमैप छवि डेटा (पिक्सेल सरणी) पाया जा सकता है। |
DIB हेडर (बिटमैप सूचना हेडर)
छवि के बारे में विस्तृत जानकारी इस शीर्षलेख द्वारा दर्शायी जाती है। इस जानकारी के आधार पर, स्क्रीन पर छवि प्रदर्शित करने के लिए उपयोग किए जाने वाले एप्लिकेशन का निर्धारण किया जाएगा। ऐसे सभी शीर्षलेखों में एक DWORD (32-बिट) फ़ील्ड होता है, जो उनके आकार को निर्दिष्ट करता है, ताकि एक एप्लिकेशन छवि में उपयोग किए गए शीर्षलेख को आसानी से निर्धारित कर सके। यह मूल रूप से इस तथ्य के कारण है कि DIB प्रारूप में कई विस्तार हुए हैं। निम्नलिखित सूचीबद्ध क्षेत्रों के साथ DIB हैडर है।
रंगो की पटिया
एक बीएमपी रंग पैलेट संरचनाओं की एक सरणी है जो डिस्प्ले डिवाइस के रंग पैलेट में प्रत्येक रंग के आरजीबी तीव्रता मान निर्दिष्ट करता है। बिटमैप डेटा में प्रत्येक पिक्सेल रंग पैलेट में एक इंडेक्स के रूप में उपयोग किए जाने वाले एकल मान को संग्रहीत करता है। उस सूचकांक में तत्व में संग्रहीत रंग जानकारी उस पिक्सेल के रंग को निर्दिष्ट करती है। बिटमैप फ़ाइल में रंग की उपलब्धता निम्नानुसार भिन्न होती है:
- एक, 4 और 8-बिट - में हमेशा एक रंग पैलेट होने की उम्मीद है
- सोलह, 24 और 32-बिट - में कभी भी रंग पटल नहीं होते हैं
- सोलह और 32-बिट बीएमपी फाइलें - रंग पैलेट के स्थान पर बिटफील्ड्स मास्क मान होते हैं
पिक्सेल संग्रहण
बिटमैप पिक्सेल बिट्स के रूप में पंक्तियों में पैक किए जाते हैं जहां प्रत्येक पंक्ति का आकार पैडिंग द्वारा 4 बाइट्स (एक 32-बिट DWORD) के गुणक तक होता है। किसी इमेज के पिक्सल को स्टोर करने के लिए आवश्यक बाइट्स की कुल मात्रा की गणना सीधे बिट्स की गिनती करके नहीं की जा सकती है। चूंकि इसमें पैडिंग शामिल है, प्रत्येक पंक्ति के आकार को 4 बाइट्स के गुणक में गोल करने के प्रभाव की आवश्यकता होती है। पैडिंग बाइट्स (जरूरी नहीं कि 0) को पंक्तियों के अंत में जोड़ा जाए ताकि पंक्तियों की लंबाई को चार बाइट्स के गुणक तक लाया जा सके। जब पिक्सेल ऐरे को मेमोरी में लोड किया जाता है, तो प्रत्येक पंक्ति को एक मेमोरी एड्रेस पर शुरू होना चाहिए जो कि 4 का गुणक है।
छवि वास्तव में पिक्सेल सरणी के 32-बिट DWORDs प्रतिनिधित्व द्वारा वर्णित है। आमतौर पर पिक्सेल “नीचे-ऊपर” संग्रहीत होते हैं, जो निचले बाएँ कोने में शुरू होते हैं, बाएँ से दाएँ जाते हैं, और फिर छवि के नीचे से ऊपर तक पंक्तिबद्ध होते हैं। पिक्सेल प्रारूप और उनके निहितार्थ नीचे सूचीबद्ध हैं:
- 1-बिट प्रति पिक्सेल (1bpp) प्रारूप 2 अलग-अलग रंगों का समर्थन करता है, (उदाहरण के लिए: काला और सफेद)।
- 2-बिट प्रति पिक्सेल (2 बीपीपी) प्रारूप 4 अलग-अलग रंगों का समर्थन करता है और 4 पिक्सेल प्रति 1 बाइट स्टोर करता है, सबसे बाएं पिक्सेल दो सबसे महत्वपूर्ण बिट्स में होता है। प्रत्येक पिक्सेल मान अधिकतम 4 रंगों की तालिका में एक 2-बिट अनुक्रमणिका है।
- 4-बिट प्रति पिक्सेल (4bpp) प्रारूप 16 अलग-अलग रंगों का समर्थन करता है और प्रति 1 बाइट में 2 पिक्सेल संग्रहीत करता है, सबसे बाईं ओर का पिक्सेल अधिक महत्वपूर्ण निबल में होता है। प्रत्येक पिक्सेल मान 16 रंगों की तालिका में 4-बिट इंडेक्स है।
- 8-बिट प्रति पिक्सेल (8बीपीपी) प्रारूप 256 अलग-अलग रंगों का समर्थन करता है और 1 पिक्सेल प्रति 1 बाइट स्टोर करता है। प्रत्येक बाइट 256 रंगों तक की तालिका में एक अनुक्रमणिका है।
- 16-बिट प्रति पिक्सेल (16bpp) प्रारूप 65536 विशिष्ट रंगों का समर्थन करता है और 1 पिक्सेल प्रति 2-बाइट WORD को संग्रहीत करता है। प्रत्येक शब्द पिक्सेल के अल्फा, लाल, हरे और नीले नमूने को परिभाषित कर सकता है।
- 24-बिट पिक्सेल (24bpp) प्रारूप 16,777,216 अलग-अलग रंगों का समर्थन करता है और प्रति 3 बाइट्स में 1 पिक्सेल मान संग्रहीत करता है। प्रत्येक पिक्सेल मान पिक्सेल के लाल, हरे और नीले नमूने (RGBAX संकेतन में 8.8.8.0.0) को परिभाषित करता है। विशेष रूप से, क्रम में: नीला, हरा और लाल (प्रत्येक नमूने के लिए 8 बिट)।
- 32-बिट प्रति पिक्सेल (32bpp) प्रारूप 4,294,967,296 अलग-अलग रंगों का समर्थन करता है और 1 पिक्सेल प्रति 4-बाइट DWORD संग्रहीत करता है। प्रत्येक DWORD पिक्सेल के अल्फा, लाल, हरे और नीले नमूनों को परिभाषित कर सकता है।