मुझे एक बीएमपी छवि पढ़ने के लिए एक प्रश्न मिला। मैं एक बीएमपी छवि में पिक्सेल मान (आर, जी, बी मान) कैसे प्राप्त कर सकता हूं? कोई भी प्रोग्रामिंग भाषा का उपयोग कर मेरी मदद कर सकता है?बीएमपी फ़ाइल का पिक्सेल मान प्राप्त करना
उत्तर
आपके चुने हुए प्लेटफ़ॉर्म के लिए एक अच्छी छवि मैनिपुलेशन लाइब्रेरी ढूंढना और इसका उपयोग करना आसान तरीका है।
- लिनक्सImLib/GDK-Pixbuf (Gnome/GTK)/QT Image (KDE/Qt) आपको क्या चाहिए ऐसा करने में सक्षम होना चाहिए।
- विंडोज मैं उपयुक्त सिस्टम लाइब्रेरी से परिचित नहीं हूं, लेकिन MSDN Search for "Bitmap" शायद शुरू करने के लिए एक अच्छी जगह है।
- मैक ओएसएक्स कोको में कुछ छवि मैनिपुलेशन क्षमताएं हैं, this article देखें।
फ़ाइल खोलने और वास्तव में बाइनरी डेटा की व्याख्या करने का कठिन तरीका होगा। ऐसा करने के लिए आपको की आवश्यकता होगी। मैं पहले आसान तरीका कोशिश करने की सिफारिश करेंगे।
आपको बीएमपी फ़ाइल प्रारूप का अध्ययन करने की आवश्यकता है। 24-बिट बीएमपी फ़ाइलों को असंपीड़ित करना आसान है। वे प्रत्येक पिक्सेल की शुरुआत और आरजीबी मूल्यों में केवल एक शीर्षलेख रखते हैं।
इसके साथ शुरू करने के लिए, 0xपर 2x2 बिटमैप छवि का उदाहरण देखें। नीचे दिए गए चरणों का पालन करें।
- विकिपीडिया पर दिखाए गए 2x2 बीएमपी छवि बनाएं।
- फ़ाइल को अपने सी प्रोग्राम का उपयोग करके बाइनरी मोड में खोलें।
- बाइट स्थिति 54.
- 3 बाइट पढ़ें।
बाइट क्रमशः 0, 0 और 255 होंगे। (यह सुनिश्चित नहीं है कि ऑर्डर आरजीबी है या नहीं। मैंने यह लंबे समय से किया था और मुझे लगता है कि ऑर्डर आरजीबी नहीं है। बस इसे सत्यापित करें।)
उतना सरल! प्रारूप के बारे में अधिक समझने के लिए बीएमपी के शीर्षलेख का अध्ययन करें।
नोट: यदि आपके बीएमपी में अल्फा चैनल है तो आपको अल्फा मानों के लिए अतिरिक्त बाइट पकड़ने की आवश्यकता हो सकती है। उस स्थिति में छवि image[pixelcount][4]
होगी, और आप उस चौथी अनुक्रमणिका को पकड़ने के लिए एक और getc(streamIn)
लाइन जोड़ देंगे। मेरी बीएमपी की आवश्यकता नहीं है।
// super-simplified BMP read algorithm to pull out RGB data
// read image for coloring scheme
int image[1024][3]; // first number here is 1024 pixels in my image, 3 is for RGB values
FILE *streamIn;
streamIn = fopen("./mybitmap.bmp", "r");
if (streamIn == (FILE *)0){
printf("File opening error ocurred. Exiting program.\n");
exit(0);
}
int byte;
int count = 0;
for(i=0;i<54;i++) byte = getc(streamIn); // strip out BMP header
for(i=0;i<1024;i++){ // foreach pixel
image[i][2] = getc(streamIn); // use BMP 24bit with no alpha channel
image[i][1] = getc(streamIn); // BMP uses BGR but we want RGB, grab byte-by-byte
image[i][0] = getc(streamIn); // reverse-order array indexing fixes RGB issue...
printf("pixel %d : [%d,%d,%d]\n",i+1,image[i][0],image[i][1],image[i][2]);
}
fclose(streamIn);
~ Locutus
- 1. बीएमपी/जेपीजी फ़ाइल
- 2. rmagick पिक्सेल रंग मान
- 3. कोडक बीएमपी
- 4. बीएमपी फ़ाइल का थंबनेल कैसे बनाएं?
- 5. गुण फ़ाइल से बूलियन मान प्राप्त करना
- 6. बीएमपी
- 7. जावास्क्रिप्ट पिक्सेल मान जोड़ें?
- 8. मैं बीएमपी पिक्सेल मानों को सरणी में कैसे पढ़ सकता हूं?
- 9. हाइबरनेट, डुप्लिकेट मान प्राप्त करना
- 10. HttpActionExecutedContext परिणाम मान प्राप्त करना
- 11. xml.dom.minidom: सीडीएटीए मान प्राप्त करना
- 12. कोड से androidManifest का "डीबग्रेबल" मान प्राप्त करना?
- 13. स्थानीय ऑडियो फ़ाइल का AVURLASSet प्राप्त करना
- 14. फ़ाइल का पूर्ण पथ प्राप्त करना
- 15. ओपनसीवी - फ़ीचर मिलान से पिक्सेल समन्वय प्राप्त करना
- 16. वेब-किट और उप-पिक्सेल मान, वर्कअराउंड?
- 17. इनपुट प्रकार फ़ाइल का मान प्राप्त करें, और अगर
- 18. ओपनसीवी: कुल मिलाकर मैट मान प्राप्त करना
- 19. QDialog exec() और परिणाम मान प्राप्त करना
- 20. जावास्क्रिप्ट - एचटीएमएल फॉर्म मान प्राप्त करना
- 21. टेक्स्ट बॉक्स से इनपुट मान प्राप्त करना
- 22. पूर्णांक से फ्लोट मान प्राप्त करना
- 23. Grails - नियंत्रक से संदेश मान प्राप्त करना
- 24. पिक्सेल में ड्राइंग पिक्सेल (पायथन)
- 25. पिक्सेल से रंग कैसे प्राप्त करें? ओपनजीएल
- 26. ट्रैकिंग पिक्सेल
- 27. बीएमपी से जेपीजी/पीएनजी सी #
- 28. किसी चरित्र का यूनिकोड मान प्राप्त करें
- 29. बुफर्ड छवि के प्रत्येक पिक्सेल के लिए आरजीबी मान प्राप्त करने के लिए तेज़ तरीका चाहिए
- 30. 2 पिक्सेल
वहाँ एक हैडर हिस्सा आप इससे पहले कि आप छवि डेटा मारा अतीत प्राप्त करने की आवश्यकता नहीं है? –
@Anon क्या होगा यदि मेरी फ़ाइल jpeg है? – Kraken