BMP檔案結構

2021-04-24 02:14:21 字數 1375 閱讀 7493

一、bmp檔案結構    

----   1.   bmp檔案組成    

----   bmp檔案由檔案頭、位圖資訊頭、顏色資訊和圖形資料四部分組成。    

----   2.   bmp檔案頭    

----   bmp檔案頭資料結構含有bmp檔案的型別、檔案大小和點陣圖起始位置等資訊。    

----   其結構定義如下:    

typedef   struct   tagbitmapfileheader  

bitmapfileheader;  

----   3.   位圖資訊頭    

bmp點陣圖資訊頭資料用於說明點陣圖的尺寸等資訊。  

typedef   struct   tagbitmapinfoheader   bitmapinfoheader;  

----   4.   顏色表    

----   顏色表用於說明點陣圖中的顏色,它有若干個表項,每乙個表項是乙個rgbquad型別的結構,定義一種顏色。rgbquad結構的定義如下:    

typedef   struct   tagrgbquad      rgbquad;  

顏色表中rgbquad結構資料的個數有bibitcount來確定:  

當bibitcount=1,4,8時,分別有2,16,256個表項;  

當bibitcount=24時,沒有顏色表項。  

位圖資訊頭和顏色表組成位圖資訊,bitmapinfo結構定義如下:  

typedef   struct   tagbitmapinfo      bitmapinfo;  

----   5.   位圖資料    

----   位圖資料記錄了點陣圖的每乙個畫素值,記錄順序是在掃瞄行內是從左到右,掃瞄行之間是從下到上。點陣圖的乙個畫素值所佔的位元組數:    

當bibitcount=1時,8個畫素佔1個位元組;  

當bibitcount=4時,2個畫素佔1個位元組;  

當bibitcount=8時,1個畫素佔1個位元組;  

當bibitcount=24時,1個畫素佔3個位元組;  

windows規定乙個掃瞄行所佔的位元組數必須是   4的倍數(即以long為單位),不足的以0填充,    

乙個掃瞄行所佔的位元組數計算方法:   datasizeperline=   (biwidth*   bibitcount+31)/8;    

//   乙個掃瞄行所佔的位元組數   datasizeperline=   datasizeperline/4*4;   //   位元組數必須是4的倍數    

位圖資料的大小(不壓縮情況下):   datasize=   datasizeperline*   biheight;

BMP檔案結構

1.bmp檔案組成 bmp檔案由檔案頭 位圖資訊頭 顏色資訊和圖形資料四部分組成。2.bmp檔案頭 bmp檔案頭資料結構含有bmp檔案的型別 檔案大小和點陣圖起始位置等資訊。其結構定義如下 typedef struct tagbitmapfileheader bitmapfileheader 3.位...

BMP檔案結構

1.bmp檔案組成 bmp檔案由檔案頭 位圖資訊頭 顏色資訊和圖形資料四部分組成。2.bmp檔案頭 bmp檔案頭資料結構含有bmp檔案的型別 檔案大小和點陣圖起始位置等資訊。其結構定義如下 typedef struct tagbitmapfileheader bitmapfileheader 3.位...

BMP檔案結構

平常我們常見的 bmp檔案即位 件,又稱dib裝置無關位圖,是相對於系統記憶體中使用的ddb裝置相關位圖而言的.一 位 件頭 bitmapfileheader struct bftype word 檔案標識,必須是 bm bfsize dword 位 件大小,以位元組為單位 bfreserved1 ...