2012-09-09 24 views
8

मैं प्रोग्रामिंग bmp फ़ाइलों में एक नौसिखिया हूँ और मैं इस वेब साइट bmp हैडर के बारे में जानने के लिए जाँच की .. http://www.daubnet.com/en/file-format-bmpबिटमैप फ़ाइल शीर्षक आकार

ऐसा लगता है कि एक bmp फ़ाइल के हेडर 54 बाइट है।

पेंट का उपयोग करके, मैंने एक साधारण 10x10 छवि बनाई, और मैंने इसे 24 बिट्स में सहेजा। इसलिए सरल गणित के अनुसार, फ़ाइल का आकार 10 * 10 * 3 + 54 = 354 बाइट होना चाहिए।

लेकिन हेक्स संपादक और फ़ाइल एक्सप्लोरर ने 374 बाइट्स का आकार वापस कर दिया।

तो मेरे पास 20 बाइट्स का अंतर है, और मुझे नहीं पता कि क्यों।

क्या आप मुझे बता सकते हैं क्यों?

बहुत बहुत धन्यवाद !!

+0

संरेखण के लिए पैडिंग? इसे स्वयं की गणना करने के बजाय 'SizeOf' का उपयोग करें। (साथ ही, यदि आप प्रोग्रामिंग भाषा का जिक्र करते हैं तो इसका उपयोग करने में मदद मिलती है; यह उत्तर देने में बहुत आसान बनाता है।) –

+2

ठीक है, वह प्रोग्रामिंग भाषा नहीं, एमएसपीएन्ट का उपयोग कर रहा है :) – nneonneo

+0

@nneonneo: "मैं एक हूँ प्रोग्रामिंग बीएमपी फाइलों में नौसिखिया "सवाल की उद्घाटन वाक्य है। –

उत्तर

10

बीएमपी में रेखाएं 4 बाइट्स के गुणकों के लिए गद्देदार हैं।

पैडिंग के बिना, प्रत्येक पंक्ति 3 * 10 = 30 बाइट्स है। पैडिंग के साथ, प्रत्येक पंक्ति 32 बाइट्स है, इसलिए छवि डेटा आकार में 320 बाइट्स है। इस प्रकार, फ़ाइल का आकार 54 + 320 = 374 बाइट है।

+1

हाय, आपके उत्तर के लिए बहुत बहुत धन्यवाद। यह समझ में आता है ... लेकिन मेरे कार्यक्रम में, मेरे पास 10x10 पिक्सल का मैट्रिक्स है, प्रत्येक पिक्सेल आरजीबी है। तो मेरे पास गणना करने के लिए रास्टर डेटा के 20 बाइट्स अतिरिक्त हैं? मैं थोड़ा उलझन में हूँ ... आपकी मदद के लिए फिर से धन्यवाद! – user1657743

+0

@ user1657743: आपको पैडिंग में कुछ भी विशिष्ट नहीं रखना है; यह सिर्फ कचरा बाइट है कि कोई भी (स्टेग्नोग्राफरों को छोड़कर) देखेंगे। – nneonneo