国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Visual C++中DDB與DIB位圖編程全攻略 (3)
4. DIB位圖編程

  4.1位圖文件格式

  先來(lái)分析DIB位圖文件的格式。位圖文件分為四部分:

  (1)位圖文件頭BITMAPFILEHEADER

  位圖文件頭BITMAPFILEHEADER是一個(gè)結(jié)構(gòu)體,長(zhǎng)度為14字節(jié),定義為:

typedef struct tagBITMAPFILEHEADER
{
 WORD bfType; //文件類型,必須是0x424D,即字符串"BM"
 DWORD bfSize; //文件大小,包括BITMAPFILEHEADER的14個(gè)字節(jié)
 WORD bfReserved1; //保留字
 WORD bfReserved2; //保留字
 DWORD bfOffBits; //從文件頭到實(shí)際的位圖數(shù)據(jù)的偏移字節(jié)數(shù)
} BITMAPFILEHEADER;

 ?。?)位圖信息頭BITMAPINFOHEADER

  位圖信息頭BITMAPINFOHEADER也是一個(gè)結(jié)構(gòu)體,長(zhǎng)度為40字節(jié),定義為:

typedef struct tagBITMAPINFOHEADER
{
 DWORD biSize; //本結(jié)構(gòu)的長(zhǎng)度,為40
 LONG biWidth; //圖象的寬度,單位是象素
 LONG biHeight; //圖象的高度,單位是象素
 WORD biPlanes; //必須是1
 WORD biBitCount;
 //表示顏色時(shí)要用到的位數(shù),1(單色), 4(16色), 8(256色), 24(真彩色)
 DWORD biCompression;
 //指定位圖是否壓縮,有效的值為BI_RGB,BI_RLE8,BI_RLE4,BI_BITFIELDS等,BI_RGB表示不壓縮
 DWORD biSizeImage;
 //實(shí)際的位圖數(shù)據(jù)占用的字節(jié)數(shù),即 biSizeImage=biWidth’ × biHeight,biWidth’是biWidth 按照4的整倍數(shù)調(diào)整后的結(jié)果
 LONG biXPelsPerMeter; //目標(biāo)設(shè)備的水平分辨率,單位是每米的象素個(gè)數(shù)
 LONG biYPelsPerMeter; //目標(biāo)設(shè)備的垂直分辨率,單位是每米的象素個(gè)數(shù)
 DWORD biClrUsed; //位圖實(shí)際用到的顏色數(shù),0表示顏色數(shù)為2biBitCount
 DWORD biClrImportant; //位圖中重要的顏色數(shù),0表示所有顏色都重要
} BITMAPINFOHEADER;

 ?。?)調(diào)色板Palette

  調(diào)色板Palette針對(duì)的是需要調(diào)色板的位圖,即單色、16色和256色位圖。對(duì)于不以調(diào)色板方式存儲(chǔ)的位圖,則無(wú)此項(xiàng)信息。調(diào)色板是一個(gè)數(shù)組,共有biClrUsed個(gè)元素(如果該值為0,則有2biBitCount個(gè)元素)。數(shù)組中每個(gè)元素是一個(gè)RGBQUAD結(jié)構(gòu)體,長(zhǎng)度為4個(gè)字節(jié),定義為:

typedef struct tagRGBQUAD
{
 BYTE rgbBlue; //藍(lán)色分量
 BYTE rgbGreen; //綠色分量
 BYTE rgbRed; //紅色分量
 BYTE rgbReserved; //保留值
} RGBQUAD;

 ?。?)實(shí)際的位圖數(shù)據(jù)ImageDate

  對(duì)于用到調(diào)色板的位圖,實(shí)際的圖象數(shù)據(jù)ImageDate為該象素的顏色在調(diào)色板中的索引值;對(duì)于真彩色圖,圖象數(shù)據(jù)則為實(shí)際的R、G、B值:

  a.單色位圖:用1bit就可以表示象素的顏色索引值;

  b.16色位圖:用4bit可以表示象素的顏色索引值;

  c. 256色位圖:1個(gè)字節(jié)表示1個(gè)象素的顏色索引值;

  d.真彩色:3個(gè)字節(jié)表示1個(gè)象素的顏色R,G,B值。

  此外,位圖數(shù)據(jù)每一行的字節(jié)數(shù)必須為4的整倍數(shù),如果不是,則需要補(bǔ)齊。奇怪的是,位圖文件中的數(shù)據(jù)是從下到上(而不是從上到下)、從左到右方式存儲(chǔ)的。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
轉(zhuǎn)貼:BMP位圖格式詳解 一
GDI C++
創(chuàng)建DIB調(diào)色板對(duì)象步驟
BMP讀取(一)
位圖文件結(jié)構(gòu)
BMP文件格式
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服