StretchDIBits將DIB中矩形區域內像素使用的顏色數據拷貝到指定的目標矩形中。如果目標矩形比源矩形大小要大,那么函數對顏色數據的行和列進行拉伸,以與目標矩形匹配。如果目標矩形大小要比源矩形小,那么該函數通過使用指定的光柵操作對行列進行壓縮。
stretchdibits的參數有哪些?
hdc:指向目標設備環境的句柄。
XDest:指定目標矩形左上角位置的X軸坐標,按邏輯單位來表示坐標。
YDest:指定目標矩形左上角的Y軸坐標,按邏輯單位表示坐標。
nDestWidth:指定目標矩形的寬度。
nDestHeight:指定目標矩形的高度。
XSrc:指定DIB中源矩形(左上角)的X軸坐標,坐標以像素點表示。
YSrc:指定DIB中源矩形(左上角)的Y軸坐標,坐標以像素點表示。
nSrcWidth:按像素點指定DIB中源矩形的寬度。
nSrcHeight:按像素點指定DIB中源矩形的高度。
lpBits:指向DIB位的指針,這些位的值按字節類型數組存儲,有關更多的信息,參考下面的備注一節。
lpBitsInfo:指向BITMAPINFO結構的指針,該結構包含有關DIB方面的信息。
iUsage:表示是否提供了BITMAPINFO結構中的成員bmiColors,如果提供了,那么該bmiColors是否包含了明確的RGB值或索引。參數iUsage必須取下列值,這些值的含義如下:
DIB_PAL_COLORS:表示該數組包含對源設備環境的邏輯調色板進行索引的16位索引值。
DIB_RGB_COLORS:表示該顏色表包含原義的RGB值,若想了解更多的信息,請參考下面備注一節。
dwRop:指定源像素點、目標設備環境的當前刷子和目標像素點是如何組合形成新的圖像。若想了解更多信息,請參考下面的備注一節。
返回值:如果函數執行成功,那么返回值是拷貝的掃描線數目,如果函數執行失敗,那么返回值是GDI_ERROR。
Windows NT:若想獲取更多錯誤信息,請調用GetLastError函數。Windows 98、Windows NT 5.0及以后版本:如果設備驅動程序不支持傳送給StretchDIBits的JPEG文件格式的圖像,則該函數將失敗,并返回GEI_ERROR。
備注:自底向上的DIB的起始點為左下角,自頂向下DIB的起始點為左上角。如果nSrcWidth和nDestWidth參數的符號不同。或是nSrcHeight和nDesHeight參數的符號不同。那么函數StretchDIBits將創建位圖的鏡像。如果NsrcWidth和NdestWidth符號不同,那么函數將沿著X軸創建位圖鏡像。如果NsrcHeight和NdestHeight符號不同,那么函數將沿著Y軸創建位圖鏡像。
對于Windows 98、Windows NT 5.0及以后版本:該函數允許將JPEG圖像用作源圖像,每個參數如何使用其實仍是一樣的。如果BITMAPINFOHEADER結構中的成員biCompression為BI_JPEG,那么參數lpBits指向的是一個包含JPEG圖像的緩沖區。BITMAPINFOHEADER結構中的biSizeImage成員指定了該緩沖區的大小。參數iUsage必須設為DIB_RGB_COLORS。dwRop必須設為SRCCOPY。為確保打印時可以有正確的圖元文件假脫機操作。應用程序應在調用StretchDIBits函數之前調用CHECKJPEGFORMAT轉義符,以確認打印機識別JPEG圖像。
ICM:執行顏色管理。如果指定的BITMAPINFO結構中的bmiHeader不包含BITMAPV4HEADER或BITMAPV5HEADER,那么當前設備環境的顏色配置(profile)被用作源顏色配置(profile)。如果沒有顏色檔案,那么就使用RGB。如果指定的BITMAPINFO結構中的成員bmiHeader包含了BITMAPV4HEADER或BITMAPV5HEADER,那么將把位圖標頭中指定的顏色配置(profile)用作源顏色配置。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;頭文件:wingdi.h:庫文件:gdi32.lib。
關鍵詞: stretchdibits是什么意思 stretchdibits的參數有哪些 StretchDIBits速度測試 StretchDIBits用法