GetDIBits

GetDIBits函式獲取指定兼容點陣圖的位,然後將其作一個DIB—設備無關點陣圖(Device-Independent Bitmap)使用的指定格式複製到一個緩衝區中。

基本介紹

  • 中文名:GetDIBits
  • hdc:設備環境句柄
  • hbmp:點陣圖句柄
  • uStartScan:指定檢索的第一個掃描線
函式原型,參數,

函式原型

int GetDIBits(HDC hdc, HBITMAP hbmp, UINT uStartScan, UINT cScanLines, LPVOID lpvBits, LPBITMAPINFO lpbi, UINT uUsage);

參數

cScanLines:指定檢索的掃描線數。
lpvBits:指向用來檢索點陣圖數據的緩衝區的指針。如果此參數為NULL,那么函式將把點陣圖的維數與格式傳遞給lpbi參數指向的BITMAPINFO結構。
lpbi:指向一個BITMAPINFO結構的指針,此結構確定了設備所在點陣圖的數據格式。
uUsage:指定BITMAPINFO結構的bmiColors成員的格式。它必須為下列取值:
DIB_PAL_COLORS:顏色表由指向當前邏輯調色板的16位索引值數組構成。
DIB_RGB_COLORS:顏色表由紅、綠、藍(RGB)三個直接值構成。
返回值:如果lpvBits參數非空,並且函式調用成功,那么返回值為從點陣圖複製的掃描線數。
Windows 95和Windows 98:如果lpvBits參數為NULL並且GetDIBits成功地填充了BITMAPINFO結構,那么返回值為點陣圖中總共的掃描線數。
Windows NT:如果lpvBits參數為NULL並且GetDIBits成功地填充了BITMAPINFO結構,那么返回值為非0。如果函式執行失敗,那么將返回0值。Windows NT:若想獲得更多錯誤信息,請調用GetLastError函式。
注釋:如果所需要的DIB格式與其內部格式相匹配,那么點陣圖的RGB值將被複製。如果不匹配,那么將合成一個顏色表。下表描述了針對每一種顏色格式所合成的顏色表。
1_BPP:顏色表中僅包含黑白表項。
4_BPP:顏色表由標準VGA定義的顏色組合而成。
8_BPP:顏色表由GDI定義的256色組合而成。
24_BPP:不返回顏色表。
如果lpvBits參數為一個有效指針,那么點陣圖信息頭結構的前6個成員必須初始化為DIB的大小和格式。
注意:點陣圖信息頭結構可為以下幾種格式:
作業系統點陣圖信息頭結構(Operating System Bitmap Information Header)
Windows NT 3.51及早期的BITMAPINFOHEADER
Windows NT 4.0及Windows 95中的BITMAPV4HEADER
Windows NT 5.0及Windows 98中的BITMAPV5HEADER
通過將高度設為正數來指定一個自下而上的DIB,而自上而下的DIB則通過設定一個負的高度值來指定。點陣圖的顏色表將附加在BITMAPINFO結構的後面。
如果lpvBits為NULL,那么GetDIBits將檢查lpbi所指向的第一個結構的第一個成員。這一成員必須指定BITMAPCOREHEADER結構或點陣圖信息頭結構的位元組數。函式將通過指定的大小來確定剩餘成員如何被初始化。
如果lpvBits為NULL,並且BITMAPINFO結構的bit count成員初始化為0,那么GetDIBits將不填充BITMAPCOREHEADER結構或點陣圖信息頭結構的顏色表部分。這一技術可用來查詢點陣圖屬性。
應用程式調用這個函式時必須將hbmp參數所標識的點陣圖選擇到一個設備環境中。
自下而上DIB的原點為點陣圖的左下角,自上而下DIB的原點為其左上角。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;頭檔案:wingdi.h;庫檔案:gdi32.lib。

相關詞條

熱門詞條

聯絡我們