BitBlt

BitBlt

BitBlt是一個計算機函式,該函式對指定的源設備環境區域中的像素進行位塊(bit_block)轉換,以傳送到目標設備環境

基本介紹

  • 中文名:BitBlt
  • 速查:Windows
  • 庫檔案:gdi32.lib
  • 頭檔案:wingdi.h
函式原型,參數,返回值,

函式原型

BOOL BitBlt(  _In_  HDC hdcDest,  _In_  int nXDest,  _In_  int nYDest,  _In_  int nWidth,  _In_  int nHeight,  _In_  HDC hdcSrc,  _In_  int nXSrc,  _In_  int nYSrc,  _In_  DWORD dwRop);
Public Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
[DllImport("gdi32.dll")]public static extern bool BitBlt(IntPtr hdcDest, int nXDest, int nYDest, int wDest, int hDest, IntPtr hdcSource, int xSrc, int ySrc, CopyPixelOperation rop);

參數

hDestDC:指向目標設備環境的句柄
x:指定目標矩形區域左上角的X軸邏輯坐標。
y:指定目標矩形區域左上角的Y軸邏輯坐標。
nWidth:指定源在目標矩形區域的邏輯寬度。
nHeight:指定源在目標矩形區域的邏輯高度。
hSrcDC:指向源設備環境的句柄。
xSrc:指定源矩形區域左上角的X軸邏輯坐標。
ySrc:指定源矩形區域左上角的Y軸邏輯坐標。
dwRop:指定光柵操作代碼。這些代碼將定義源矩形區域的顏色數據,如何與目標矩形區域的顏色數據組合以完成最後的顏色。
下面列出了一些常見的光柵操作代碼:
BLACKNESS:表示使用與物理調色板的索引0相關的色彩來填充目標矩形區域,(對預設的物理調色板而言,該顏色為黑色)。
DSTINVERT:表示使目標矩形區域顏色取反。
MERGECOPY:表示使用布爾型的AND(與)操作符將源矩形區域的顏色與特定模式組合一起。
MERGEPAINT:通過使用布爾型的OR(或)操作符將反向的源矩形區域的顏色與目標矩形區域的顏色合併。
NOTSRCCOPY:將源矩形區域顏色取反,於拷貝到目標矩形區域。
NOTSRCERASE:使用布爾類型的OR(或)操作符組合源和目標矩形區域的顏色值,然後將合成的顏色取反。
PATCOPY:將特定的模式拷貝到目標點陣圖上。
PATPAINT:通過使用布爾OR(或)操作符將源矩形區域取反後的顏色值與特定模式的顏色合併。然後使用OR(或)操作符將該操作的結果與目標矩形區域內的顏色合併。
PATINVERT:通過使用XOR(異或)操作符將源和目標矩形區域內的顏色合併。
SRCAND:通過使用AND(與)操作符來將源和目標矩形區域內的顏色合併。
SRCCOPY:將源矩形區域直接拷貝到目標矩形區域。
SRCERASE:通過使用AND(與)操作符將目標矩形區域顏色取反後與源矩形區域的顏色值合併。
SRCINVERT:通過使用布爾型的XOR(異或)操作符將源和目標矩形區域的顏色合併。
SRCPAINT:通過使用布爾型的OR(或)操作符將源和目標矩形區域的顏色合併。
WHITENESS:使用與物理調色板中索引1有關的顏色填充目標矩形區域。(對於預設物理調色板來說,這個顏色就是白色)。
dwRop Values
From wingdi.h:
#define BLACKNESS 0x42
#define DSTINVERT 0x550009
#define MERGECOPY 0xC000CA
#define MERGEPAINT 0xBB0226
#define NOTSRCCOPY 0x330008
#define NOTSRCERASE 0x1100A6
#define PATCOPY 0xF00021
#define PATINVERT 0x5A0049
#define PATPAINT 0xFB0A09
#define SRCAND 0x8800C6
#define SRCCOPY 0xCC0020
#define SRCERASE 0x440328
#define SRCINVERT 0x660046
#define SRCPAINT 0xEE0086
#define WHITENESS 0xFF0062

返回值

如果函式成功,那么返回值非零;如果函式失敗,則返回值為零。
Windows NT:若想獲取更多錯誤信息,請調用GetLastError函式。
備註:如果在源設備環境中可以實行旋轉或剪下變換,那么函式BitBlt返回一個錯誤。如果存在其他變換(並且目標設備環境中匹配變換無效),那么目標設備環境中的矩形區域將在需要時進行拉伸、壓縮或旋轉。
如果源和目標設備環境的顏色格式不匹配,那么BitBlt函式將源場景的顏色格式轉換成能與目標格式匹配的格式。當正在記錄一個增強型圖元檔案時,如果源設備環境標識為一個增強型圖元檔案設備環境,那么會出現錯誤。如果源和目標設備環境代表不同的設備,那么BitBlt函式返回錯誤。
Windows CE:在Windows CE 1.0版中,參數dwRop只可以指定為下列值:SRCCOPY、SRCAND、SRCPAINT、SRCINVERT。在Windows CE 2.0版中,參數dwRop可以是任何光柵操作代碼值。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;頭檔案:wingdi.h;庫檔案:gdi32.lib。

相關詞條

熱門詞條

聯絡我們