EngStretchBlt 函式 (winddi.h)
EngStretchBlt 函式會導致 GDI 執行延展式位區塊傳輸。
語法
ENGAPI BOOL EngStretchBlt(
SURFOBJ *psoDest,
SURFOBJ *psoSrc,
SURFOBJ *psoMask,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
[in] COLORADJUSTMENT *pca,
[in] POINTL *pptlHTOrg,
[in] RECTL *prclDest,
[in] RECTL *prclSrc,
POINTL *pptlMask,
[in] ULONG iMode
);
參數
psoDest
SURFOBJ 結構的指標,描述要繪製的介面。
psoSrc
SURFOBJ 結構的指標,描述位區塊傳輸的來源介面。
psoMask
定義來源遮罩之 SURFOBJ 結構的指標。 遮罩是由邏輯對應所定義,這是每個圖元一位的點陣圖。
遮罩會限制複製的來源區域。 如果指定此參數,則其具有隱含的 rop4 0xCCAA,這表示來源應該在遮罩為 1 的位置複製,但目的地應該在遮罩為 0 的位置單獨保留。
如果此參數為 NULL, 則 rop4 會隱含0xCCCC,這表示來源應該在來源矩形的任何地方複製。
pco
CLIPOBJ 結構的指標,此結構會限制目的地中要修改的區域。 提供 GDI 服務,以將 裁剪區域 列舉為一組矩形。
可能的話,GDI 可簡化涉及的裁剪。 不過,不同於 DrvBitBlt,可以使用單一裁剪矩形呼叫 EngStretchBlt 。 這可防止裁剪輸出時發生四捨五入錯誤。
pxlo
XLATEOBJ 結構的指標,指定來源和目標介面之間要如何轉譯色彩索引。
您也可以查詢這個 XLATEOBJ 結構,以尋找任何來源索引的 RGB 色彩。 在某些情況下,高品質的延展位區塊傳輸必須插補色彩。
[in] pca
COLORADJUSTMENT 結構的指標,此結構會定義要套用至來源位圖的色彩調整值,再延展位。 如需詳細資訊,請參閱 Microsoft Windows SDK 檔。
[in] pptlHTOrg
POINTL 結構的指標,定義半色調筆刷的原點。 使用半色筆刷的驅動程序應該將筆刷模式的左上方圖元與裝置介面上的這個點對齊。
[in] prclDest
RECTL 結構的指標,定義在目的地介面座標系統中要修改的區域。 這個矩形是由兩個未妥善排序的點所定義,這表示第二個點的座標不一定大於第一個點的座標。 所述的矩形不包含下邊緣和右邊緣。 此函式永遠不會使用空的目的地矩形呼叫。
如果目的地矩形未妥善排序, EngStretchBlt 會讓其排序良好。
[in] prclSrc
在來源介面的座標系統中,定義要複製之區域的 RECTL 結構的指標。 矩形會對應至 中國lDest 所定義的矩形。 此函式永遠不會獲得空的來源矩形,而且來源矩形的點一律會妥善排序。
對應是由 中國lSrc 和 中國lDest 所定義。 在中國lDest 和中國lSrc 中指定的點位於整數座標上,其對應至圖元中心。 由兩個這類點定義的矩形會被視為具有兩個頂點的幾何矩形,其座標為指定點,但會從每個座標減去0.5。 (POINTL 結構是指定這些小數座標頂點的簡短表示法。)
任何矩形的邊緣永遠不會交集圖元,但會繞著一組圖元。 矩形內的像素是右下角專屬矩形的預期圖元。 EngStretchBlt 會將幾何來源矩形完全對應至幾何目的地矩形。
pptlMask
POINTL 結構的指標,定義指定遮罩中對應於來源矩形左上方圖元的圖元。 如果未指定遮罩,則會忽略此參數。
[in] iMode
指定來源圖元如何結合以取得輸出圖元。 HALFTONE 模式比其他模式慢,但會產生高品質的影像。
值 | 意義 |
---|---|
BLACKONWHITE | 在壓縮位區塊傳輸上,圖元應該與布爾值 AND 作業結合。 在延展的位區塊傳輸上,應該復寫圖元。 |
COLORONCOLOR | 在壓縮位區塊傳輸上,應該忽略足夠的圖元,這樣就不需要合併圖元。 在延展的位區塊傳輸上,應該復寫圖元。 |
半 色調 | 驅動程式可以使用輸出介面中的圖元群組,以最接近輸入的色彩或灰階。 |
WHITEONBLACK | 在壓縮位區塊傳輸上,圖元應該與布爾值 OR 作業結合。 在延展的位區塊傳輸上,應該復寫圖元。 |
傳回值
如果函式成功,則傳回值為 TRUE 。 否則為 FALSE ,並回報錯誤碼。
備註
此函式允許將相同的半角演算法套用至 GDI 位陣圖和裝置介面。
如果驅動程式已連結DrvStretchBlt,而且會呼叫 該驅動程式來執行不支持的動作,則驅動程式應該呼叫EngStretchBlt。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows 2000 和更新版本的 Windows 作業系統中使用。 |
目標平台 | Universal |
標頭 | winddi.h (包括 Winddi.h) |
程式庫 | Win32k.lib |
Dll | Win32k.sys |