複製鏈接
請複製以下鏈接發送給好友

SetDIBitsToDevice

鎖定
SetDIBitsToDevice是一個函數,該函數使用DIB位圖和顏色數據對與目標設備環境相關的設備上的指定矩形中的像素進行設置,支持Windows 98和Windows NT 5.0系統。
中文名
SetDIBitsToDevice
Windows NT
3.1
Windows
95
Windows CE
支持

SetDIBitsToDevice函數功能

對於Windows 98和Windows NT 5.0,函數SetDIBitsToDevice已經得到擴展,它允許JPEG圖像作為源圖像

SetDIBitsToDevice函數原型

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);

SetDIBitsToDevice參數

hdc:設備環境句柄。
XDest:指定目標矩形左上角的X軸座標,按邏輯單位表示座標。
YDest:指字目標矩形左上角的Y軸座標,按邏輯單位表示座標。
dwWidth:指定DIB的寬度,按邏輯單位表示寬度。
dwHeight:指定DIB的高度,按邏輯單位表示高度。
XSrc:指定DIB位圖左下角的X軸座標,按邏輯單位表示座標。
YSrc:指定DIB位圖左下角的Y軸座標,按邏輯單位表示座標。
uStartScan:指定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。

SetDIBitsToDevice其他信息

位圖的位是對系統調色板進行索引時,可獲得最佳的位圖繪製速度。應用程序可以通過調用GetSystemPaletteEntries函數來檢索系統調色板的顏色和索引值。在檢索到顏色和索引值之後,應用程序可以創建DIB。有關係統調色板方面更多的信息,請參考顏色方面的內容。
自底向上的DIB位圖的起始點是在該位圖的左下角,而自頂向下的DIB的起始點是在左上角。
為了減少對大型DIB位圖的位進行設置所需的內存量,應用程序可以通過重複調用SetDIBitsToDevice。每次將位圖的不同部分放入到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。