久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

vc 下讀入DIB圖像(1)格式

 啟蒙彩魂 2010-12-09

1,。位圖文件頭

typedef struct tagBITMAPFILEHEADER

{

     WORD  bfType;      //文件類型標頭,,必須為 0x4D42,即“BM

     DWORD bfSize;       //整個文件的長度,,以字節(jié)為單位

     WORD  bfReserved1;  //保留,,必須為 0

     WORD  bfReserved2;  //保留,必須為 0

     DWDRD bfOffBits;    //指定文件中實際的位圖數據距 BITMAPINFOHEADER 結構           

//的字節(jié)偏移量

}BITMAPFILEHEADER;

 

2,。位圖信息段

typedef struct tagBITMAPINFO

{

     BITMAPINFOHEADER bmiHeader;  //位圖信息頭

     RGBQUAD bmiColors[1];         //調色板(如果有)

}BITMAPINFO;

typedef struct tagBITMAPINFOHEADER

{

     DWORD biSize;        //指定 BITMAPINFOHERDER 結構所需字節(jié)數,,對Windows DIB 來說,該字節(jié)數為 40

     LONG biWidth;         //以像素為單位指定位圖的寬度

     LONG biHeight;        //以像素為單位指定位圖的高度,,如果它是一個正值,,則位圖數據是按照掃描行自下而上存儲,位圖的原點在左下角,,如果它是一個負值,,則位圖數據是按照掃描行自上而下存儲,位圖的原點在左上角

     WORD biPlanes;         //目標設備的位平面數,,必須置為 1

     WORD biBitCount;       //每像素的位數,,應為 14,、8,、1624 32

     DWORD biCompression;  //壓縮類型,對于未壓縮位圖總是 BI_RGB,,若為 BI_RLE8 表示以每像素 8 位的游程長度編碼形式壓縮

     DWORD biSizeImage;    //位圖圖像字節(jié)數

   LONG biXPelsPerMeter;   //指定目標像素的水平分辨率,,以每米像素數表示

   LONG biYPelsPerMeter;   //指定目標像素的垂直分辨率,以每米像素數表示

   DWORD biClrUsed;       //顏色表中位圖實際使用的顏色數

   DWORD biClrImportant;   //最重要的顏色索引數目,,若為 0,,則所有顏色都重要

// 8 位圖像通常使 biClrUsed biClrImportant 兩字段為 25616/ 24 /32 位的則為 0

}BITMAPINFOHEADER;

 

biBitCount 的值為 8,,則顏色表的項數為 256,,每個顏色表項是一個 RGBQUAD 結構,而 16/24/32 位圖像不使用顏色表,,在位圖數據中直接用16/24/32位的RGB值來表示一個像素,。

typedef struct tagRGBQUAD

{

     BYTE rgbBlue;    //藍色的強度(0255

     BYTE rgbGreen;   //綠色的強度(0255

     BYTE rgbRed;     //紅色的強度(0255

     BYTE rgbReserved; //保留,必須置為 0

}RGBQUAD;

 

3,。位圖數據區(qū)

每行都被填充到一個 4 字節(jié)邊界,。一個像素可以有 14,、8,、1624 32 個連續(xù)位組成,,這取決于 DIB 的顏色分辨率,。對于 16 位、24 位和 32 位的 DIB,,每個像素表示一個 RGB 顏色。

對于 16 位的 DIB 一般有三種位編碼技術:一是 Alpha.5.5.5,,用最高位存儲一個 Alpha(是否透明),,其余 15 位均勻地分配給紅色、綠色和藍色,。二是 X.5.5.5,,和一類似,只是 MSB 沒用,。三是 5.6.5 ,,其中 5 位分配給紅色,6 位分配給綠色,,5 位分配給藍色,。

24 DIB 中,一個像素一般包含 8 位紅色值,、8 位綠色值和 8 位藍色值,。兩種位編碼技術,一是 Alpha(8).8.8.8,優(yōu)點在于每像素 32 位,,是奔騰處理器最快的可能內存尋址方式,。一是X(8).8.8.8,最高 8 位被放棄,。由于視頻卡不能 3 字節(jié)定位,,采用 4 字節(jié)只是為了對齊。

1 位的 DIB 是單色 DIB,,但不一定是黑和白,,它可以包含從每個 DIB 的顏色表中選擇的任何兩種顏色。一個單色 DIB 具有兩個 32 位顏色表條目,,每個包含各 8 位的紅,、綠、藍值,。像素值 0 表示使用第一個條目,,1 表示使用第二個條目。如果顯卡工作在 256 模式下,,那么,,程序可以調整系統(tǒng)調色板,以加載這兩種指定的顏色,。

8 DIB 是很普遍的,,它具有一個顏色表,該顏色表具有 256(或更少)個 32 位條目,。每個像素值是該顏色表的一個索引,。在程序中可以利用這個顏色表創(chuàng)建一個邏輯調色板,如果另一個程序具有對系統(tǒng)調色板的控制權,,那么,,Windows 會盡力將邏輯調色板顏色與系統(tǒng)調色板相匹配。

    本站是提供個人知識管理的網絡存儲空間,,所有內容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現有害或侵權內容,,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多