डीआईबी फाइल क्या है?
एक डिवाइस-स्वतंत्र बिटमैप (DIB) एक रेखापुंज छवि फ़ाइल है जो संरचना में मानक बिटमैप फ़ाइलों (BMP/image/bmp/)) के समान है। इसमें एक रंग तालिका होती है जो आरजीबी रंगों के मानचित्रण को पिक्सेल मानों में वर्णित करती है। यह डीआईबी को किसी भी डिवाइस पर छवि का प्रतिनिधित्व करने में सक्षम बनाता है। इसे लगभग सभी एप्लिकेशन के साथ खोला जा सकता है जो विंडोज़ के साथ-साथ macOS पर एक मानक BMP फ़ाइल खोल सकते हैं। डीआईबी बाइनरी फाइलें हैं और बीएमपी के समान एक जटिल फ़ाइल स्वरूप है। डीआईबी छवियां रंग गहराई और पिक्सेल-प्रति-इंच के संदर्भ में उपकरणों को प्रस्तुत करने की आउटपुट क्षमताओं से स्वतंत्र हैं।
डीआईबी फ़ाइल प्रारूप विनिर्देश
एक DIB में निम्नलिखित रंग और आयाम की जानकारी होती है:
- डिवाइस का रंग प्रारूप जिस पर आयताकार छवि बनाई गई थी।
- उस डिवाइस का रिज़ॉल्यूशन जिस पर आयताकार छवि बनाई गई थी।
- डिवाइस के लिए पैलेट जिस पर छवि बनाई गई थी।
- बिट्स की एक सरणी जो लाल, हरे, नीले (आरजीबी) को मैप करती है, आयताकार छवि में पिक्सेल में ट्रिपल करती है।
- एक डेटा-संपीड़न पहचानकर्ता जो बिट्स की सरणी के आकार को कम करने के लिए उपयोग की जाने वाली डेटा संपीड़न योजना (यदि कोई हो) को इंगित करता है।
डीआईबी डेटा ब्लॉक प्रारूप
डिस्क पर संग्रहीत .DIB फ़ाइलों की तुलना में DIB मेमोरी ब्लॉक के संदर्भ में आता है। मेमोरी ब्लॉक में संरचना शामिल है जो डीआईबी के लिए विंडोज एपीआई विनिर्देशों के अनुसार है। वास्तविक डीआईबी में निम्न शामिल हैं:
- एक हेडर
- रंगो की पटिया
- पिक्सेल डेटा
व्यावहारिक रूप से, पैलेट, हेडर और इमेज डेटा के साथ काम करना इस तरह किया जाता है जैसे कि वे मेमोरी के तीन अलग-अलग ब्लॉक हों। मेमोरी के इस सामान्य ब्लॉक को एक हैंडल GlobalAlloc का उपयोग करके सौंपा गया है और इसे HDIB के रूप में जाना जाता है, जिसका उपयोग हेडर, कलर टेबल और पिक्सेल डेटा को निकालने और काम करने के लिए किया जाता है।
संरचनाएं
डीआईबी में निहित जानकारी विभिन्न संरचनाओं द्वारा दर्शायी जाती है। इसमे शामिल है:
बिटमैपइन्फो - एक डीआईबी के लिए आयाम और रंग जानकारी को परिभाषित करता है
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO, *LPBITMAPINFO, *PBITMAPINFO;
इसमें एक बिटमैपिनफोहेडर होता है:
typedef struct tagBITMAPINFOHEADER {
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER, *PBITMAPINFOHEADER;
इसके बाद दो या दो से अधिक RGBQAD संरचनाएं होती हैं।
typedef struct tagRGBQUAD {
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved;
} RGBQUAD;
डेटा बिट्स
बिट्स | विवरण |
---|---|
1-बिट प्रारूप (मोनोक्रोम) | मोनोक्रोम बिटमैप्स में दो रंग (काले और सफेद) होते हैं। रंगों की इस सीमित संख्या के कारण, ये बिटमैप डिस्क पर कम जगह लेते हैं। बिटबिटकाउंट दोनों रंगों के प्रतिनिधित्व के लिए सही या गलत लौटाता है। बिटबिटकाउंट == 1 होने पर अधिकांश आवेदक पैलेट को पूरी तरह से छोड़ देते हैं। |
4 बिट प्रारूप (वीजीए या 16 रंग) | छवि डेटा का प्रत्येक बाइट दो पिक्सेल और बिटबिटकाउंट==4 का प्रतिनिधित्व करता है। ये बिट्स अवरोही क्रम में पिक्सेल के रंग का प्रतिनिधित्व करते हैं। |
8 बिट प्रारूप (256 रंग) | यह 8-बिट प्रारूप अधिकतम 256 रंगों का प्रतिनिधित्व कर सकता है। छवि के बिटमैप डेटा सरणी में प्रत्येक बाइट एकल पिक्सेल का प्रतिनिधित्व करता है। उस बाइट का मान bmciColors द्वारा दर्शाई गई 256 प्रविष्टियों से उपयोग की जाने वाली रंग पैलेट प्रविष्टि की संख्या है। |
24 बिट प्रारूप (ट्रूकॉलर) | इन बिटमैप्स में अधिकतम 2^24 रंग हो सकते हैं (बायबिटकाउंट == 24)। बिटमैप डेटा सरणी में प्रत्येक तीन-बाइट अनुक्रम एक पिक्सेल के तीन प्राथमिक रंगों की सापेक्ष तीव्रता का प्रतिनिधित्व करता है। रंगों को 0 से 255 तक के मान के रूप में वर्णित किया गया है और तीन बाइट्स में नीले, हरे और लाल क्रम में संग्रहीत किया जाता है। यह एक महत्वपूर्ण अंतर है, क्योंकि विंडोज़ में रंगों के अधिकांश संदर्भ विपरीत क्रम का उपयोग करते हैं: लाल/हरा/नीला, इसलिए “आरजीबी” के बजाय ट्रूकोलर छवियों के साथ काम करते समय “बीजीआर” सोचें। विंडोज के लिए ड्राइंग प्रक्रिया में तेजी लाने के लिए एक रंग पैलेट निर्दिष्ट किया जा सकता है, जिस स्थिति में biClrUsed 0 नहीं होगा। लेकिन जैसा कि आप देख सकते हैं, इसकी आवश्यकता नहीं है, क्योंकि पिक्सेल डेटा में ही रंग की जानकारी होती है। |
32 बिट प्रारूप | 32 बिट छवियों में अधिकतम 2^24 रंग होते हैं (biBitCount == 24)। |