<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > stm32 讀取bmp圖像的信息

stm32 讀取bmp圖像的信息

作者: 時(shí)間:2016-11-13 來(lái)源:網(wǎng)絡(luò ) 收藏
在sd卡文件系統下讀取bmp圖像和顯示是比較容易的,為了給jpeg解碼提供一個(gè)過(guò)程,這里我先介紹一下bmp的讀取方式

這里主要是介紹讀取bmp信息的一些方法

本文引用地址:http://dyxdggzs.com/article/201611/316547.htm

首先說(shuō)一下BMP的4個(gè)組成部分:

1.文件頭信息塊

0000-0001:文件標識,為字母ASCII碼“BM”。
0002-0005:文件大小。
0006-0009:保留,每字節以“00”填寫(xiě)。
000A-000D:記錄圖像數據區的起始位置。各字節的信息依次含義為:文件頭信息塊大小,圖像描述信息塊的大小,圖像顏色表的大小,保留(為01)。


2.圖像描述信息塊

000E-0011:圖像描述信息塊的大小,常為28H。
0012-0015:圖像寬度。
0016-0019:圖像高度。
001A-001B:圖像的plane總數(恒為1)。
001C-001D:記錄像素的位數,很重要的數值,圖像的顏色數由該值決定。
001E-0021:數據壓縮方式(數值位0:不壓縮;1:8位壓縮;2:4位壓縮)。
0022-0025:圖像區數據的大小。
0026-0029:水平每米有多少像素,在設備無(wú)關(guān)位圖(.DIB)中,每字節以00H填寫(xiě)。
002A-002D:垂直每米有多少像素,在設備無(wú)關(guān)位圖(.DIB)中,每字節以00H填寫(xiě)。
002E-0031:此圖像所用的顏色數,如值為0,表示所有顏色一樣重要。

3.顏色表

  顏色表的大小根據所使用的顏色模式而定:2色圖像為8字節;16色圖像位64字節;256色圖像為1024字節。其中,每4字節表示一種顏色,并以B (藍色)、G(綠色)、R(紅色)、alpha(32位位圖的透明度值,一般不需要)。即首先4字節表示顏色號1的顏色,接下來(lái)表示顏色號2的顏色,依此類(lèi)推。

4.圖像數據區

  顏色表接下來(lái)位為位圖文件的圖像數據區,在此部分記錄著(zhù)每點(diǎn)像素對應的顏色號,其記錄方式也隨顏色模式而定,既2色圖像每點(diǎn)占1位(8位為1字節);16色圖像每點(diǎn)占4位(半字節);256色圖像每點(diǎn)占8位(1字節);真彩色圖像每點(diǎn)占24位(3 字節)。所以,整個(gè)數據區的大小也會(huì )隨之變化。究其規律而言,可的出如下計算公式:圖像數據信息大小=(圖像寬度*圖像高度*記錄像素的位數)/8。

前三個(gè) 是我們今天要讀取的

首先我們先用 f_open 找到我們要讀取的圖片文件的信息尤其是圖片開(kāi)始的簇和指針地址。
CurFile=BmpFileName;

F_Open(CurFile);//打開(kāi)文件
F_Read(CurFile,jpg_buffer);//讀出512個(gè)字節
pbmp=(BITMAPINFO*)jpg_buffer;//得到BMP的頭部信息

這是我摘借的幾句程序
第二句 把讀出的bmp文件信息存在buffer中
第三句 這句話(huà)是我們今天重點(diǎn)說(shuō)的
=(BITMAPINFO*)jpg_buffer 強制轉換為 (BITMAPINFO)指針類(lèi)型

typedef __packed struct
{
BITMAPFILEHEADER bmfHeader;// 1.文件頭信息塊
BITMAPINFOHEADER bmiHeader;//2.圖像描述信息塊
RGBQUAD bmiColors[1];// 3.顏色表
}BITMAPINFO;

第3句話(huà) 強制轉化buffer數組 到這個(gè)結構體
實(shí)際上數組和結構體是一樣的 不一樣的是結構體 有個(gè)最小結構對齊的問(wèn)題(這個(gè)在本壇有詳細講解)。
對照著(zhù)樓上各個(gè)信息快 信息字節 寫(xiě)出結構體:
//BMP頭文件
typedef __packed struct
{
WORDbfType ; //文件標志.只對BM,用來(lái)識別BMP位圖類(lèi)型
DWORD bfSize ; //文件大小,占四個(gè)字節
WORDbfReserved1 ;//保留
WORDbfReserved2 ;//保留
DWORD bfOffBits ;//從文件開(kāi)始到位圖數據(bitmap data)開(kāi)始之間的的偏移量
}BITMAPFILEHEADER ;
//BMP信息頭
typedef __packed struct
{
DWORD biSize ; //說(shuō)明BITMAPINFOHEADER結構所需要的字數。
LONGbiWidth ; //說(shuō)明圖象的寬度,以象素為單位
LONGbiHeight ; //說(shuō)明圖象的高度,以象素為單位
WORDbiPlanes ; //為目標設備說(shuō)明位面數,其值將總是被設為1
WORDbiBitCount ; //說(shuō)明比特數/象素,其值為1、4、8、16、24、或32
DWORD biCompression ;//說(shuō)明圖象數據壓縮的類(lèi)型。其值可以是下述值之一:
//BI_RGB:沒(méi)有壓縮;
//BI_RLE8:每個(gè)象素8比特的RLE壓縮編碼,壓縮格式由2字節組成(重復象素計數和顏色索引);
//BI_RLE4:每個(gè)象素4比特的RLE壓縮編碼,壓縮格式由2字節組成
//BI_BITFIELDS:每個(gè)象素的比特由指定的掩碼決定。
DWORD biSizeImage ;//說(shuō)明圖象的大小,以字節為單位。當用BI_RGB格式時(shí),可設置為0
LONGbiXPelsPerMeter ;//說(shuō)明水平分辨率,用象素/米表示
LONGbiYPelsPerMeter ;//說(shuō)明垂直分辨率,用象素/米表示
DWORD biClrUsed ; //說(shuō)明位圖實(shí)際使用的彩色表中的顏色索引數
DWORD biClrImportant ; //說(shuō)明對圖象顯示有重要影響的顏色索引的數目,如果是0,表示都重要。
}BITMAPINFOHEADER ;
//彩色表
typedef __packed struct
{
BYTE rgbBlue ; //指定藍色強度
BYTE rgbGreen ; //指定綠色強度
BYTE rgbRed ; //指定紅色強度
BYTE rgbReserved ;//保留,設置為0
}RGBQUAD ;
這樣我們可以通過(guò)結構體 得到bmp文件任何一個(gè)信息。

下次接著(zhù)來(lái) 直到顯示解碼顯示然后再上傳移植文件



關(guān)鍵詞: stm32讀取bmp圖

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>