【宏思微想:科技生活,技術開發】
一. BMP 簡介
BMP是Bitmap的縮寫,是Windows平台的一種圖像文件格式。可以分成兩類:設備相關位圖DDB(Device Depandent Bitmap)和設備無關位圖DIB(Device Independent Bitmap)。Windows3.0之前使用的是DDB位圖,之後主要使用DIB位圖,本文主要分析DIB位圖,如無特别說明,本文所指BMP均是Windows DIB位圖。
假定每一行實際數據所占的字節數為nBytePerWidth,則它們有如下計算關系:
Stride = (((biWidth*biBitCount 31)&(~31))>>5)<<2;
if(1==biBitCount)
{
if(Width<=8)
nBytePerWidth = 1;
else
{
nBytePerWidth = Width/8;
if(Width%8)
nBytePerWidth ;
}
}
else if(4==biBitCount)
{
if(Width<=2)
nBytePerWidth = 1;
else
{
nBytePerWidth = Width/2;
if(Width%2)
nBytePerWidth ;
}
}
else
nBytePerWidth = Width*(biBitCount>>3);
Padding = Stride - nBytePerWidth;
三. 常見BMP文件
常見BMP文件的格式以及它們的分析如下圖:
下面分别給出上述各種常見BMP的十六進制視圖,紅色表示文件頭部分,藍色表示信息頭,紫色表示顔色表或者顔色掩碼表,黑色表示位圖數據部分。
3.1 1bit
3.2 4bit
3.3 8bit
3.4 16bit A1R5G5B5
當壓縮方式為BI_RGB時,X1R5G5B5等同于A1R5G5B5。
3.5 16bit R5G6B5
3.6 16bit X4R4G4B4
3.7 24bit R8G8B8
3.8 32bit A8R8G8B8
3.9 32bit X8R8G8B8
——————(完)——————
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!