c - Reading bytes from bmp file -
मैं सी का उपयोग कर एक बीएमपी फ़ाइल से बाइट कैसे पढ़ूं?
यह सिर्फ एक बाइनरी फाइल लोड करने के लिए एक सामान्य प्रयोजन के कंकाल है, और पहले बाइट को एक सूचक वापस लौटाता है। यह फोल्ड (fopen ()) के साथ फोल्ड () के बाद फोिल () है, लेकिन यह एक ... थोड़ा और वर्बोस है कोई त्रुटि-हैंडलिंग नहीं है, हालांकि त्रुटियों के लिए जांच की जाती है और मुझे विश्वास है कि यह कोड सही होगा। यह कोड खाली फ़ाइलों को अस्वीकार कर देगा (जो, परिभाषा के द्वारा, फिर भी लोड करने के लिए कोई डेटा नहीं है)।
#include & lt; stdio.h & gt; # शामिल करें & lt; stdlib.h & gt; स्थिर इंट फाइल_आइज़ (FILE * में, आकार_टी * आकार) {if (fseek (in, 0, SEEK_END) == 0) {long len = ftell (in); अगर (लेन & gt; 0) {यदि (एफईसीईएक्स (में, 0, SEEK_SET) == 0) {* size = (size_t) लेन; वापसी 1; }} 0 वापसी 0; } स्थिर शून्य * load_binary (const char * फाइलनाम, आकार_टी * आकार) {FILE * in; शून्य * डेटा = शून्य; Size_t लेन; अगर ((= (फ़ाइल में), = () में) (यदि = (फ़ाइल =) (=,)) = (= ()) (यदि ((डेटा = malloc (len)) = =) (अगर (fread (fread (filename, "rb") =) डेटा, 1, लेन, में) == लेन) * size = len; अन्य {नि: शुल्क (डेटा); डेटा = नल; }}} Fclose (इन); } वापसी डेटा; } Int main (int argc, char * argv []) {int i; के लिए (i = 1; argv [i]! = नल; i + +) {शून्य * छवि; Size_t आकार; यदि ((image = load_binary (argv [i], & amp; आकार)) = = NULL {printf (''% s 'से भरा बीएमपी, आकार% u बाइट्स \ n ", argv [i], (अहस्ताक्षरित int ) आकार); नि: शुल्क (छवि);
आप आसानी से बीएमपी हेडर को पार्स करने के लिए कोड को जोड़ सकते हैं, अन्य उत्तरों में दिए गए लिंक का उपयोग करके।
Comments
Post a Comment