BMP文件結(jié)構(gòu)分析_第1頁
BMP文件結(jié)構(gòu)分析_第2頁
BMP文件結(jié)構(gòu)分析_第3頁
BMP文件結(jié)構(gòu)分析_第4頁
BMP文件結(jié)構(gòu)分析_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

BMP文件結(jié)構(gòu)分析(三)繼續(xù)分析接下來的數(shù)據(jù),根據(jù)BMP文件結(jié)構(gòu)的定義,接下來的數(shù)據(jù)是位圖信息頭,cat2.bmp圖像文件的位圖信息頭的內(nèi)容如圖5-5所示。

(點擊查看大圖)圖5-5

cat2.bmp圖像的位圖信息頭表5-7所示為cat2.bmp圖像文件中位圖信息頭各字段的含義。表5-7

cat2.bmp圖像文件中位圖信息頭各字段的含義十六進制值描

述28000000:cat2.bmp圖像的位圖信息頭大小C8000000000000C8=200,是cat2圖像的寬度,單位像素9900000000000099=153,是cat2圖像的高度,單位像素0100總是108000008=8,cat2圖像的色深,即2的8次冪等于256色00000000壓縮方式,0表示不壓縮8A7700000000778A=30602,是cat2圖像的圖像數(shù)據(jù)大小,單位字節(jié)120B000000000B12=2834,cat2圖像的水平分辨率,單位像素/m120B000000000B12=2834,cat2圖像的垂直分辨率,單位像素/m00000000cat2圖像使用的顏色數(shù),0表示使用全部顏色00000000cat2圖像中重要的顏色數(shù),0表示所有顏色都重要繼續(xù)分析接下來的數(shù)據(jù),根據(jù)BMP文件結(jié)構(gòu)的定義,因為cat2.bmp圖像是256色的位圖,所以應(yīng)該有256個調(diào)色板,每個調(diào)色板占4字節(jié),整個調(diào)色板一共1024字節(jié)大小。cat2.bmp圖像文件的調(diào)色板數(shù)據(jù)如圖5-6和圖5-7所示。

(點擊查看大圖)圖5-6

cat2.bmp圖像的調(diào)色板地址從00000036h開始存儲

(點擊查看大圖)圖5-7

cat2.bmp圖像的調(diào)色板數(shù)據(jù)結(jié)束地址是00000435h從圖5-6和圖5-7中可以看出,cat2.bmp圖像的調(diào)色板地址從00000036h開始到00000435h結(jié)束,即00000435h-00000036h+1=400h=1024。如果想查看cat2圖像的調(diào)色板對應(yīng)的實際顯示顏色,可以使用AdobePhotoshopCS打開cat2.bmp,在AdobePhotoshopCS的菜單欄中選擇"圖像"→"模式"→"顏色表",即可觀看cat2的調(diào)色板,如圖5-8所示。

圖5-8

在AdobePhotoshopCS中查看cat2的調(diào)色板圖5-8所示cat2.bmp的調(diào)色板顏色和圖5-6中的十六進制數(shù)據(jù)是一一對應(yīng)的。在AdobePhotoshopCS的調(diào)色板上單擊任何一個像素的顏色即可彈出一個拾色器對話框顯示該像素顏色的詳細組成信息。cat2.bmp調(diào)色板和cat2.bmp的十六進制數(shù)據(jù)的對應(yīng)關(guān)系如圖5-9所示。繼續(xù)分析接下來的數(shù)據(jù),根據(jù)BMP文件結(jié)構(gòu)的定義,如果一個圖像有調(diào)色板,那么緊跟在調(diào)色板后面的是圖像的數(shù)據(jù),這些數(shù)據(jù)不是實際的顏色值,而是指向調(diào)色板數(shù)組的索引,根據(jù)索引來獲取調(diào)色板中的顏色,如圖5-10所示。

(點擊查看大圖)圖5-9

cat2.bmp調(diào)色板和cat2.bmp的十六進制數(shù)據(jù)的對應(yīng)關(guān)系

(點擊查看大圖)圖5-10

cat2.bmp的圖像數(shù)據(jù)因為cat2.bmp是256色的位圖,即采用了8位色深作為指向調(diào)色板數(shù)組的索引,所以根據(jù)圖5-10中顯示的數(shù)據(jù)可以得知:494949B1494949494999表示cat2.bmp位圖左下角第1個像素的顏色等于調(diào)色板[49],第2個像素的顏色等于調(diào)色板[49],第3個像素的顏色等于調(diào)色板[49],第4個像素的顏色等于調(diào)色板[B1]……依此類推。分析完cat2.bmp圖像之后,接下來分析的是cat1.bmp。cat1.bmp圖像是24位色圖像,根據(jù)BMP文件結(jié)構(gòu)定義得知,cat1.bmp圖像沒有調(diào)色板,圖像數(shù)據(jù)存儲的是實際的顏色數(shù)據(jù),每個像素用3字節(jié)表示,分別是紅綠藍。由于cat1.bmp和cat2.bmp的位圖文件頭和位圖信息頭結(jié)構(gòu)一樣,所以cat1.bmp的位圖文件頭和位圖信息頭可以參考上面對cat2.bmp的分析,下面從cat1.bmp的位圖信息頭結(jié)束的位置開始分析,如圖5-11所示。

(點擊查看大圖)圖5-11

cat1.bmp圖像的圖像數(shù)據(jù)從圖5-11可以看到表示每個像素的紅綠藍三色的值,實際存放的時候是倒過來存放的,在分析BMP圖像格式時需要注意這點。通過上面對BMP文件存儲結(jié)構(gòu)的分析發(fā)現(xiàn),BMP文件的位圖文件頭和位圖信息頭存在著大量的重復(fù)數(shù)據(jù)。如果存儲大量同一色深的BMP位圖,必然會浪費大量存儲空間,所以很多時候游戲編程人員都會去掉BMP文件頭和信息頭,只保留幾個必要的信息和圖像數(shù)據(jù),那么BMP文件頭和信息頭中哪幾個字段是必須保留的呢?使用Winhex的文件比較功能比較兩個24位色深的BMP圖像文件,觀察兩個文件的文件頭和信息頭有什么不同的地方,如圖5-12所示。

(點擊查看大圖)圖5-12

使用Winhex比較兩個24位色深的BMP圖像文件從圖5-12可以看出,兩個色深相同的BMP圖像的文件頭和信息頭一共有4處不同的地方,分別是文件頭的文件大小、信息頭的圖像寬度、圖像高度和圖像數(shù)據(jù)大小。所以很多時候,游戲編程人員只保留圖像文件的文件大小、圖像寬度、圖像高度和圖像數(shù)據(jù)大小信息,甚至有時不需要保留文件大小這個數(shù)值,使用圖像數(shù)據(jù)大小數(shù)值即可。在分析未知文件存儲格式時,如果遇到去掉了文件頭的文件時,如上面所說的BMP文件,會給分析未

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論