c語言讀取bmp檔案完整版

2021-07-13 23:00:44 字數 2387 閱讀 6126

#include #include /* 定義word為兩個位元組的型別 */

typedef unsigned short word;

/* 定義dword為四個位元組的型別 */

typedef unsigned long dword;

/* 位**件頭主要是對位**件的一些描述 位圖資訊頭主要是對位圖影象方面資訊的描述 */

/*************************** 位圖標準資訊(54位元組) ******************************************/

/* 位**件頭 (點陣圖頭的位元組數 = 位**件位元組數 - 位圖影象資料位元組數)*/

typedef struct bmp_file_header

bmpfileheader; // 14 位元組

/* 位圖資訊頭 */

typedef struct bmp_info

bmpinf; // 40 位元組

/* 彩色表:調色盤 */

typedef struct rgb_quad

rgbquad;

int main()

// 讓 fp 指向 bmp 檔案的開始

// 第 2 個引數是偏移量 第三個引數是檔案起始位址 所以此函式執行成功後檔案指標會指向檔案的開始

fseek(fp, 0, seek_set); // fp = 0x00426aa0

// 讀取檔案資訊

/* 引數1: 讀出資料的存放緩衝區

引數2: 讀取多少個位元組的資料

引數3: 讀取幾包這樣的資料

引數4: 檔案指標(源資料)

*/ fread(&bmpfileheader, sizeof(bmpfileheader), 1, fp);

fread(&bmpinfo, sizeof(bmpinfo), 1, fp);

// 輸出bmp檔案的位**件頭的所有資訊

printf("位**件頭主要是對位**件的一些描述:bmpfileheader\n\n");

printf("檔案識別符號 = 0x%x\n", bmpfileheader.btype);

printf("bmp 檔案大小 = %d 位元組\n", bmpfileheader.bsize);

printf("保留值1 = %d \n", bmpfileheader.breserved1);

printf("保留值2 = %d \n", bmpfileheader.breserved2);

printf("檔案頭的最後到影象資料位開始的偏移量 = %d 位元組\n", bmpfileheader.boffset);

// 輸出bmp檔案的點陣圖資訊頭的所有資訊

printf("\n\n點陣圖資訊頭主要是對位圖影象方面資訊的描述:bmpinfo\n\n");

printf("資訊頭的大小 = %d 位元組\n", bmpinfo.binfosize);

printf("點陣圖的高度 = %d \n", bmpinfo.bheight);

printf("點陣圖的寬度 = %d \n", bmpinfo.bwidth);

printf("影象的位面數(位面數是調色盤的數量,預設為1個調色盤) = %d \n", bmpinfo.bplanes);

printf("每個畫素的位數 = %d 位\n", bmpinfo.bbitcount);

printf("壓縮型別 = %d \n", bmpinfo.bcompression);

printf("影象的大小 = %d 位元組\n", bmpinfo.bmpimagesize);

printf("水平解析度 = %d \n", bmpinfo.bxpelspermeter);

printf("垂直解析度 = %d \n", bmpinfo.bypelspermeter);

printf("使用的色彩數 = %d \n", bmpinfo.bclrused);

printf("重要的色彩數 = %d \n", bmpinfo.bclrimportant);

printf("\n\n\n壓縮說明:有0(不壓縮),1(rle 8,8位rle壓縮),2(rle 4,4位rle壓縮,3(bitfields,位域存放)");

fclose(fp);

while(1);

return 0;

}

4.對於不遵守此宣告或者其他違法使用本文內容者,本人依法保留追究權等。

【乙個早起的程式設計師】精彩系列文章每天不斷。

C語言和C 的區別 完整版

c和c 的關係 就像是win98跟winxp的關係。c 是在c的基礎上增加了新的理論,玩出了新的花樣。所以叫c加加。c和c 的區別 c是乙個結構化語言,它的重點在於演算法和資料結構。c程式的設計首要考慮的是如何通過乙個過程,對輸入 或環境條件 進行運算處理得到輸出 或實現過程 事務 控制 c 首要考...

c語言讀取bmp檔案

一 了解bmp檔案的格式 位 件頭 位圖資訊段 調色盤資訊 一般都沒有 位圖資料,各部分關鍵字段。詳細資訊參見 讀取bmp檔案的函式所需要的標頭檔案 include include include include include bmpstru.h define malloc type,n type...

紅黑樹C 完整版

這裡寫 片 異常類 ifndef except h define except h include using namespace std class d ception virtual d ception virtual string tostring const virtual string w...