函式功能
該函式使用DIB點陣圖和顏色數據對與目標設備環境相關的設備上的指定矩形中的像素進行設定。對於Windows 98和Windows NT 5.0,函式SetDIBitsToDevice已經得到擴展,它允許JPEG圖像作為源圖像。函式原型
int SetDIBitsToDevice(HDC hdc, int xDest, int Ydest, DWORD dwWidth, DWORD dwHeight, intXSrc, int Ysrc, UINT uStartScan, UINT cScanLines, CONST VOID *lpvBits, CONST BITMAPINFO *lpbmi, UINT fuColorUse);主要參數
hdc:設備環境句柄。XDest:指定目標矩形左上角的X軸坐標,按邏輯單位表示坐標。
YDest:指字目標矩形左上角的Y軸坐標,按邏輯單位表示坐標。
dwWidth:指定DIB的寬度,按邏輯單位表示寬度。
dwHeight:指定DIB的高度,按邏輯單位表示高度。
XSrc:指定DIB點陣圖左下角的X軸坐標,按邏輯單位表示坐標。
YSrc:指定DIB點陣圖左下角的Y軸坐標,按邏輯單位表示坐標。
uScanLines:指定DIB中的起始掃描線。
cScanLInes:指定參數lpvBits指向的數組中包含的DIB掃描線數目。
lpvBits:指向存儲DIB顏色數據的位元組類型數組的指針。關於更多的信息,請參考下面的備註一節。
lpbmi:指向BITMAPINFO結構的指針,該結構包含有關DIB的信息。
fuColorUse:指向BITMAPINFO結構中的成員bmiColors是否包含明確的RGB值或對調色板進行索引的值。有關更多的信息,請參考下面的備註部分。
參數fuColorUse必須是下列值之一,這些值的含義如下:
DIB_PAL_COLORS:表示顏色表由16位的索引值數組組成,利用這些值可對當前選中的邏輯調色板進行索引。
DIB_RGB_COLORS:表示顏色表包含原義的RGB值。
返回值:如果函式執行成功,那么返回值是設定的掃描線數目;如果函式失敗,那么返回值為0。
Windows NT:若想獲得更多錯誤信息,請調用GetLastError函式。
Windows 98、NT 5.0及以後版本:如果驅動程式不支持傳給SetDIBitsToDevice函式的JPEG檔案圖像,那么函式將失敗,並返回GDI_ERROR。
備註:當點陣圖的位是對系統調色板進行索引時,可獲得最佳的點陣圖繪製速度。應用程式可以通過調用GetSystemPaletteEntries函式來檢索系統調色板的顏色和索引值。在檢索到顏色和索引值之後,應用程式可以創建DIB。有關係統調色板方面更多的信息,請參考顏色方面的內容。
自底向上的DIB點陣圖的起始點是在該點陣圖的左下角,而自頂向下的DIB的起始點是在左上角。
為了減少對大型DIB點陣圖的位進行設定所需的記憶體量,應用程式可以通過重複調用SetDIBitsToBevice。每次將點陣圖的不同部分放入到lpvBits數組來將輸出捆綁在一起。參數uStartScan和cScanLines的值標明了lpvBits數組中包含的點陣圖部分。在有一個全螢幕幕MS DOS會話在前台運行時,如果正在後台運行的一個進程調用了SetDIBitsToDevice函式,那么該函式會返回一個錯誤。
對於Windows 98、Windows NT 5.0及以後版本;如果BITMAPINFOHEADER中的成員biCompression為BI_JPEG,那么lpvBits指向一個包含JPEG圖像的緩衝區。BITMAPINFOHEADER結構中的成員biSizeimage指定了該緩衝區的大小。參數fuColorUse必須設定為DIB_RGB_COLORS。如果BITMAPV4HEADER中的成員bV4SizeImage指定了該緩衝區的大小。參數fuColorUse必須設為DIB_RGB-COLORS。如果BITMAPV5HEADER結構中的成員bV5Compression為BI_JPEG,那么參數lpbBits指向一個包含JPEG圖像的緩衝區。DITMAPV5HEADER結構中的成員bV5SizeImage指定了該緩衝區的大小,參數fuColorUse必須設為DIB_RGB_COLORS。
ICM:進行顏色管理操作。如果指定的BITMAPINFO結構不是BITMAPV4HEADER或BITMAPV5HEADER,那么當前設備環境的顏色配置(profile)就當作源顏色配置使用。如果BITMAPINFO結構不是BITMAPV4HEADER或BITMAPV5HEADER,那么使用RGB顏色。如果指定的BITMAPINFO結構為BITMAPV4HEADER或BITMAPV5HEADER,那么與該點陣圖有關的顏色配置(profile)就用作源顏色。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;頭檔案:wingdi.h:庫檔案:gdi32.lib。