पीएनजी प्रारूप को समझने की कोशिश कर रहा है।किसी दिए गए पीएनजी छवि से पिक्सेल मान निकालने का प्रयास
पर विचार करें इस PNG छवि:
89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 00 00 00 80 00 00 00 44 08 02 00 00 00
C6 25 AA 3E 00 00 00 C2 49 44 41 54 78 5E ED D4 81 06 C3 30 14 40 D1 B7 34 DD FF FF 6F
B3 74 56 EA 89 12 6C 28 73 E2 AA 34 49 03 87 D6 FE D8 7B 89 BB 52 8D 3B 87 FE 01 00 80
00 00 10 00 00 02 00 40 00 00 08 00 00 01 00 20 00 00 04 00 80 00 00 10 00 00 02 00 40
00 00 08 00 00 01 00 20 00 00 00 D4 5E 6A 64 4B 94 F5 98 7C D1 F4 92 5C 5C 3E CF 9C 3F
73 71 58 5F AF 8B 79 5B EE 96 B6 47 EB F1 EA D1 CE B6 E3 75 3B E6 B9 95 8D C7 CE 03 39
C9 AF C6 33 93 7B 66 37 CF AB BF F9 C9 2F 08 80 00 00 10 00 00 02 00 40 00 00 08 00 00
01 00 20 00 00 04 00 80 00 00 10 00 00 02 00 40 00 00 08 00 00 01 00 20 00 00 8C 37 DB
68 03 20 FB ED 96 65 00 00 00 00 49 45 4E 44 AE 42 60 82
समतुल्य वर्ण:
छवि here
से लिया जाता है हेक्स संपादक में, यह इस तरह दिखता है
‰PNG........IHDR...€...D.....Æ%ª>...ÂIDATx^íÔ..Ã[email protected]Ñ·4Ýÿÿo³tVê‰.l(sâª4I.‡ÖþØ{‰
»R.;‡þ..€[email protected] ....€[email protected] ...Ô^jdK”õ˜|Ñô’\\>Ïœ?sqX_¯
‹y[î–¶GëñêÑζãu;湕.ÇÎ.9ɯÆ3“{f7Ï«¿ùÉ/.€[email protected] ....€[email protected] ..Œ7Ûh.
ûí–e....IEND®B`‚
ही हेक्स संपादक का स्क्रीनशॉट निम्नलिखित में दिखाया गया है:
मैं इस छवि इंजीनियर हैडर हिस्सा है और आरजीबी पिक्सेल मान निकालने के लिए उल्टा करने के लिए कोशिश कर रहा हूँ। मैंने PNG और here के बारे में भी पढ़ा है, और अब तक मैंने इस छवि के बारे में निम्नलिखित नोट किया है:
आईएचडीआर खंड पहले दिखाई देना चाहिए। यह शामिल हैं:
Width: 4 bytes
Height: 4 bytes
Bit depth: 1 byte
Color type: 1 byte
Compression method: 1 byte
Filter method: 1 byte
Interlace method: 1 byte
नीचे मैं अनुक्रम में पढ़ने हेक्स डाटा शुरू कर रहा हूँ:
1- सबसे पहले 8 बाइट्स: यह 8-बाइट हस्ताक्षर
89 50 4E 47 0D 0A 1A 0A
है समान रूप से यह है: एचईएक्स संपादक
में एक पीएनजी छवि को एक आईएचडीआर होना चाहिए खंड, एक या अधिक आईडीएटी भाग, और एक आईएनडी खंड।
2- हिस्सा: लंबाई
00 00 00 0D
3-Chunk: हिस्सा प्रकार
49 48 44 52
कौन सा IHDR है।
http://www.w3.org/TR/PNG-Chunks.html
4- हिस्सा: छवि की चौड़ाई (दशमलव में 128)
00 00 00 80
5- Chunk: छवि के ऊंचाई (दशमलव में 68)
00 00 00 44
6- चंक: बिट डिप्टी (1 बाइट)
08
7- हिस्सा: रंग प्रकार
02
8- संपीड़न विधि
00
9- फ़िल्टर विधि:
00
10- जिल्द विधि:
00
11- क्या निम्न डेटा है?
सी 6 25 एए 3E 00 00 00 सी 2
12-- IDAT
13- इस डेटा (IDAT के बाद) क्या है:
78 5 ई ईडी डी 4 81 06 सी 3 30 14 40 डी 1 बी 7 34 डीडी एफएफ एफएफ 6 एफ बी 3 74 56 ईए 89 12 6 सी 28 73 ई 2 एए 34 49 03 87 डी 6 एफई डी 8 7 बी 89 बीबी 52 8 डी 3 बी 87 एफई 01 00 80 00 00 10 00 00 02 00 40 00 00 08 00 00 01 00 20 00 00 04 00 80 00 00 10 00 00 02 00 40 00 00 08 00 00 01 00 20 00 00 00 डी 4 5 ई 6 ए 64 4 बी 94 एफ 5 98 7 सी डी 1 एफ 4 92 5 सी 5 सी 3 ई सीएफ 9 सी 3 एफ 73 71 58 5 एफ एएफ 8 बी 79 5 बी ईई 96 बी 6 47 ईबी एफ 1 ईए डी 1 सीई बी 6 ई 3 75 3 बी ई 6 बी 9 95 8 डी सी 7 सीई 03 3 9 सी 9 एएफ सी 6 33 9 3 बी 66 37 सीएफ एबी बीएफ एफ 9 सी 9 2 एफ 08 80 00 00 10 00 00 02 00 40 00 00 08 00 00 01 00 20 00 00 04 00 80 00 00 10 00 00 02 00 40 00 00 08 00 00 01 00 20 00 00 8C 37 डीबी 68 03 20 अमेरिकन प्लान प्रवर्तन निदेशालय 96 65 00 00 00 00
14- IEND:
49 45 4E 44
15- अंतिम 4 बाइट
AE 42 60 82
इन क्या हैं?
क्या कुछ मुझे समझने में मदद कर सकते हैं, 11, 13 और 15 अंक ऊपर? और पिक्सेल मूल्य कहां हैं?
एक बार मैं इन विवरणों पता है, मैं अपने खुद के 16 बिट PNG चित्र उत्पन्न होगा: छवि (128 x 68 पिक्सल)
इन विवरणों को जानने का प्रयोजन हो रही है। मेरे पास पहले से ही पिक्सेल मान हैं, इसलिए मेरा काम हेडर इत्यादि पेश करना होगा।
मुझे नहीं पता कि सॉफ्टवेयर है जो इस काम को कर सकता है।
अद्यतन
मैं संपीड़न की वजह से अब समझते हैं, मैं पिक्सेल मान पता लगाने में सक्षम नहीं होगा।
मुझे यह विचार आया कि मैं ओपनसीवी में एक फाइल लिख सकता हूं और इसे पीएनजी के रूप में सहेज सकता हूं। खैर अब मेरा सीधा सवाल है: मेरे पास बाइनरी फ़ाइल है जिसमें ग्रे-स्केल 16 बिट-पिक्सेल मान हैं। क्या मैं इसे ओपनसीवी में 16 बिट पीएनजी के रूप में लिख सकता हूं?
मैंने अभी संपीड़न के बारे में देखा है, इसलिए ठीक है मुझे सटीक पिक्सेल मान नहीं मिलेगा। लेकिन क्या आप मुझे 11 और 15 के बारे में बता सकते हैं? – gpuguy
धन्यवाद, आपका उत्तर मेरे लिए बहुत उपयोगी है। मैं इसका परीक्षण करूंगा और फिर परिणाम पोस्ट करूंगा। – gpuguy
+1 लेकिन मैं पूरी तरह से सहमत नहीं हूं "आपने अपना समय बर्बाद कर दिया"। पीएनजी के आंतरिक के बारे में सीखना आपके वर्तमान कार्य के लिए आवश्यक नहीं हो सकता है, लेकिन फिर भी यह सीख रहा है। – leonbloy