StretchBlt()函數

1. 原型及參數

BOOL StretchBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, DWORD dwRop );


x
目標矩形左上角的X邏輯座標。 
y
目標矩形左上角的Y邏輯座標。 
nWidth
目標矩形的寬度(邏輯單位)。 
nHeight
目標矩形的高度(邏輯單位)。 
pSrcDC
指定源設備上下文
xSrc
源矩形左上角的X邏輯座標
ySrc
源矩形左上角的Y邏輯座標 
nSrcWidth
源矩形的寬度(邏輯單位)
nSrcHeight

源矩形的高度(邏輯單位)

dwRop

指定要進行的光柵操作。光柵操作碼定義了系統如何在輸出操作中組合顏色,這些操作包括刷子、源位圖和目標位圖等對象。

2.返回值

     如果函數執行成功,那麼返回值爲非零,如果函數執行失敗,那麼返回值爲零。Windows NT:若想獲得更多的錯誤信息,請調用GetLastError函數。


3.【注意:函數使用前要使用SetStretchBltMode函數,該函數可以設置指定設備環境中的位圖拉伸模式。

函數原型:int SetSTretchBltMode(HDC hdc, int iStretchMode);

參數:

hdc:設備環境句柄。

LStretchMode:指定拉伸模式。它可以取下列值,這些值的含義如下:

BLACKONWHITE:使用消除和現在的像素顏色值進行邏輯AND(與)操作運算。如果該位圖是單色位圖,那麼該模式以犧牲白色像素爲代價,保留黑色像素點。

COLORONCOLOR:刪除像素。該模式刪除所有消除的像素行,不保留其信息。

HALFTONE:將源矩形區中的像素映射到目標矩形區的像素塊中,覆蓋目標像素塊的一般顏色與源像素的顏色接近。在設置完HALFTONE拉伸模之後,應用程序必須調用SetBrushOrgEx函數來設置刷子的起始點。如果沒有成功,那麼會出現刷子沒對準的情況。

STRETCH_ANDSCANS:與BLACKONWHITE一樣。

STRETCH_DELETESCANS:與COLORONCOLOR一樣。

STRECH_HALFTONE:與HALFTONE相同。

STRETCH_ORSCANS:與WHITEONBLACK相同。

WHITEONBLACK:使用顏色值進行邏輯OR(或)操作,如果該位圖爲單色位圖,那麼該模式以犧牲黑色像素爲代價,保留白色像素點。

返回值:如果函數執行成功,那麼返回值就是先前的拉伸模式,如果函數執行失敗,那麼返回值爲0。

Windows NT:若想獲得更多錯誤信息,請調用GetLastError函數。

備註:拉伸模式在應用程序調用StretchBit函數時定義系統如何將位圖的行或列與顯示設備上的現有像素點進行組合。

BLACKONWHITE(STRETCH_ANDSCANS)和WHITEONBLACK(STRETCH_ORSCANS)模式典型地用來保留單色位圖中的前景像素。COLORONCOLOR(STRETCH_DELETESCANS)模式則典型地用於保留彩色位圖中的顏色。

HALFTONE模式比其他三種模式需要對源圖像進行更多的處理,也比其他模式慢,但它能產生高質量圖像,也應注意在設置HALFTONE模式之後,應調用SetBrushOrgEx函數以避免出現刷子沒對準現象。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章