資源描述:
《圖像文件格式BMP文件格式詳解.docx》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、5.2BMP文件格式BMP文件格式是MicrosoftWindows下最常見的圖像文件格式之一,它采用位映射存儲格式,除了圖像深度可選以外,不采用其他任何壓縮,因此,BMP文件所占用的空間很大。BMP文件的圖像深度可選lbit、4bit、8bit及24bit。BMP文件存儲數(shù)據(jù)時,圖像的像素值在文件中的存放順序為從左到右,從下到上,也就是說,在BMP文件中首先存放的是圖像的最后一行像素,最后才存儲圖像的第一行像素,但對與同一行的像素,則是按照先左邊后右邊的的順序存儲的;另外一個需要關(guān)注的細(xì)節(jié)是:文件存儲圖像的每一行像
2、素值時,如果存儲該行像素值所占的字節(jié)數(shù)為4的倍數(shù),則正常存儲,否則,需要在后端補0,湊足4的倍數(shù)。由于BMP文件格式是Windows環(huán)境中交換與圖有關(guān)的數(shù)據(jù)的一種標(biāo)準(zhǔn),因此在Windows環(huán)境中運行的圖形圖像軟件都支持BMP圖像格式。5.2.1典型的BMP圖像文件由四部分組成:1、位圖頭文件數(shù)據(jù)結(jié)構(gòu)主要包含文件的大小、文件類型、圖像數(shù)據(jù)偏離文件頭的長度等信息;2、位圖信息數(shù)據(jù)結(jié)構(gòu)包含圖象的尺寸信息、圖像用幾個比特數(shù)值來表示一個像素、圖像是否壓縮、圖像所用的顏色數(shù)等信息;3、調(diào)色板包含圖像所用到的顏色表,顯示圖像時需用
3、到這個顏色表來生成調(diào)色板,但如果圖像為真彩色,既圖像的每個像素用24個比特來表示,文件中就沒有這一塊信息,也就不需要操作調(diào)色板。4、位圖數(shù)據(jù)記錄了位圖的每一個像素值或該對應(yīng)像素的顏色表的索引值,圖像記錄順序是
在掃描行內(nèi)是從左到右,掃描行之間是從下到上。這種格式我們又稱為Bottom_Up位圖,當(dāng)然與之相對的還有Up_Down形式的位圖,它的記錄順序是從上到下的,對于這種形式的位圖,也不存在壓縮形式。5.2.2BMP文件結(jié)構(gòu)位圖文件(bitmapfile,BMP)格式是Windows采用的圖像文件存儲格式,在Wind
4、ows環(huán)境下運行的所有圖像處理軟件都支持這種格式。Windows3.0以后的BMP格式與顯示設(shè)備無關(guān),因此把這種BMP格式稱為設(shè)備無關(guān)位圖(DeviceIndependentbitBitmap,DIB)格式,Windows能夠在任何類型的顯示設(shè)備上顯示BMP位圖。BMP位圖默認(rèn)的文件擴(kuò)展名是bmp。1、文件結(jié)構(gòu)位圖文件可看成由4個部分組成:位圖文件頭(Bitmap-File)、位圖信息頭(Bitmap-InformationHeader)、彩色表(ColorTable)和定義位圖的字節(jié)陣列,它們的名稱和符號如下表1所
5、示:表1BMP圖像文件組成部分的名稱和符號位圖文件的組成結(jié)構(gòu)名稱符號位圖文件頭BITMAPEILEHEADERbmfh位圖信息頭BITMAPINFOHEADERbmib彩色表RGBQUADaColors[]圖像數(shù)據(jù)陣列字節(jié)BITMAPDATAaBitmapBits[]2、位圖文件結(jié)構(gòu)可綜合在下表中:表2位圖文件結(jié)構(gòu)偏移量名稱大?。╞yte)內(nèi)容圖像文件頭000h標(biāo)識符2兩字節(jié)的內(nèi)容用來識別位的類型:BM——Windows3.x,9x,NT,……CI、CP、IC、PT——OS/2002hFileSize4用字節(jié)表示的整
6、個文件的大小006hReserved4保留,設(shè)置為0000AhBitmapDataOffset4從文件開始到位圖數(shù)據(jù)開始之間的數(shù)據(jù)(BitmapData)的偏移量圖像信息頭000EhBitmapHeaderSize4位圖信息頭的長度,用來描述位圖的顏色和壓縮方法等。下面的長度表示:28h——Windows3.X,9X,NT…0Ch/F0h——OS/21.x0012hWidth4位圖的寬度,以像素為單位0016hHeight4位圖的高度,以像素為單位001AhPlanes2位圖的位面數(shù)001ChBitesPerPixe
7、l2每個像素的位數(shù)1—單色位圖;4—16色圖;8—256色位圖16—16bit高彩位圖;24—24位真彩位圖001EhCompression4壓縮說明:0:無壓縮;1—RLE8-bit/pixel(BI_RLE4)2—RLE4-bit/pixel(BI——RLE8)3—Bitfields(BI_BITFIELDS)0022hBitmapDataSize4用字節(jié)數(shù)表示的位圖數(shù)據(jù)的大小。該數(shù)必須是4的倍數(shù)。0026hHresolution4用pixel/m表示的水平分辨率002AhVresolution4用pixel/m
8、表示的水平分辨率002EhColors4位圖使用的顏色數(shù)。如8bit/pixel表示為100h或者2560032hImportantColors4指定重要的顏色數(shù)。當(dāng)該域的值等于顏色數(shù)時,表示所有顏色都一樣重要0036hPaletteN*4調(diào)色板規(guī)范。對于調(diào)色板中的每個表項,這4個字節(jié)用下述方法來描述RGB的值:·1字節(jié)用于表示RGB中的藍(lán)色分