bmp檔案結構由四個區塊組成,分別是檔案頭區塊、位圖資訊區塊、索引色區塊和顏色資料區塊。
檔案頭共14個位元組,位圖資訊塊共40個位元組;
顏色資料區塊的位元組長度=點陣圖寬*點陣圖高,如果是24位色,顏色資料區塊的位元組長度=點陣圖寬*點陣圖高*3,而且點陣圖寬*3必須是4的倍數,不然自動不全;
一、檔案頭區塊(14個位元組)具體含義
位元組位址
長度說明
16進製制示例
0-12
bm-代表window的bmp
42 4d
2-98
檔案總長度
56 4d
10-13
4顏色資料區塊的起始位址(或檔案頭區塊+點陣圖資訊區塊+索引色區塊)
36 04 00 00
注:檔案總長度=檔案頭區塊+點陣圖資訊區塊+索引色區塊+顏色資料區塊+2。
二、位圖資訊區塊(40個位元組)具體含義
位元組位址
位元組長度
說明16進製制示例值
0-34
位圖資訊區塊的長度(常值:0x280,40)
28 00 00 00
4-74
影象寬度
b4 00 00 00
8-11
4影象高度
68 00 00 00
12-13
2顏色平面數
0114-15
2表示顏色的位元位數,一般為1,4,8,16,24,32
0816-19
4壓縮比(0-不壓縮)
00 00 00 00
20-23
4顏色資料的長度(點陣圖寬*點陣圖高 或 點陣圖寬*點陣圖高*3)
20 49 00 00
24-27
4水平解析度(單位為公尺)
00 00 00 00
28-31
4垂直解析度
00 00 00 00
32-35
4顏色索引數
00 01 00 00
36-39
400 00 00 00
三、索引色區塊
1、非24 位bmp
該區塊長度一般為為1024,即256*4,但也可能是其他值,由檔案頭的10-13位元組決定。
索引色區塊裡分別用rgbx四個位元組表示乙個索引顏色。x位元組無意義。按儲存順序分別代表0-255色(也見過246色,根據影象不同而不同)。
2、24位bmp
該區塊長度為0。
四、顏色資料區塊
儲存順序:以左下角為原點,從左到右,從下到上。
1、非24位bmp
長度=寬*高,且寬必須是4的倍數,每個位元組儲存顏色的索引值:0-255,通過索引值再到索引色區塊中取回rgb。
2、24位bmp
長度=寬*高*3,且寬*3必須是4的倍數,不然要補齊,故長度可能大於寬*3。每3個位元組代表乙個畫素點的rgb。
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 ...