共用方式為


二進位點陣作業

本節列出 GetROP2SetROP2 函式所使用的二進位點陣作業程序代碼。 點陣作業程式代碼會定義 GDI 如何結合所選畫筆中的位與目的地點陣圖中的位。

每個點陣作業程序代碼都代表布爾運算,其中所選取畫筆和目的地位圖中的圖元值會結合在一起。 以下是這些作業中使用的兩個作數。

操作數 意義
P 選取的畫筆
D 目的地點陣圖

 

這些作業中使用的布爾運算符會遵循。

算子 意義
一個 位 AND
n 位 NOT (反向)
o 位 OR
x 位獨佔 OR (XOR)

 

所有布爾運算都會以反波蘭記號表示法呈現。 例如,下列作業會將目的地位圖中的圖元值取代為畫筆的圖元值和選取筆刷的圖元值組合:

DPo 

每個點陣作業程序代碼都是 32 位整數,其高階字是布爾運算索引,且低序字是作業程序代碼。 16 位作業索引是零延伸的 8 位值,代表兩個參數上布爾運算所產生的所有可能結果(在此案例中為畫筆和目的地值)。 例如,DPo 和 DPan 作業的作業索引會顯示在下列清單中。

P D DPo Dpan
0 0 0 1
0 1 1 1
1 0 1 1
1 1 1 0

 

下列清單概述其所代表的繪圖模式和布爾運算。

點陣作業 布爾運算
R2_BLACK 0
R2_COPYPEN P
R2_MASKNOTPEN DPna
R2_MASKPEN DPa
R2_MASKPENNOT PDna
R2_MERGENOTPEN DPno
R2_MERGEPEN DPo
R2_MERGEPENNOT PDno
R2_NOP D
R2_NOT Dn
R2_NOTCOPYPEN Pn
R2_NOTMASKPEN DPan
R2_NOTMERGEPEN DPon
R2_NOTXORPEN DPxn
R2_WHITE 1
R2_XORPEN DPx

 

若為單色裝置,GDI 會將值零對應到黑色,並將值 1 對應到白色。 如果應用程式嘗試使用可用的二進位點陣作業,在白色目的地上使用黑色畫筆繪製,則會發生下列結果。

點陣作業 結果
R2_BLACK 可見的黑色線條
R2_COPYPEN 可見的黑色線條
R2_MASKNOTPEN 沒有可見的線條
R2_MASKPEN 可見的黑色線條
R2_MASKPENNOT 可見的黑色線條
R2_MERGENOTPEN 沒有可見的線條
R2_MERGEPEN 可見的黑色線條
R2_MERGEPENNOT 可見的黑色線條
R2_NOP 沒有可見的線條
R2_NOT 可見的黑色線條
R2_NOTCOPYPEN 沒有可見的線條
R2_NOTMASKPEN 沒有可見的線條
R2_NOTMERGEPEN 可見的黑色線條
R2_NOTXORPEN 可見的黑色線條
R2_WHITE 沒有可見的線條
R2_XORPEN 沒有可見的線條

 

若為色彩裝置,GDI 會使用 RGB 值來代表畫筆和目的地的色彩。 RGB 色彩值是一個長整數,其中包含紅色、綠色和藍色色彩欄位,每個都指定指定色彩的強度。 強度範圍從 0 到 255。 這些值會封裝在長整數的三個低序位元組中。 畫筆的色彩一律為純色,但目的地的色彩可能是任何兩種或三種色彩的混合。 如果應用程式嘗試使用可用的二進位點陣作業,在藍色目的地上使用白色畫筆繪製,則會發生下列結果。

點陣作業 結果
R2_BLACK 可見的黑色線條
R2_COPYPEN 可見的白色線條
R2_MASKNOTPEN 可見的黑色線條
R2_MASKPEN 不可見的藍色線條
R2_MASKPENNOT 可見的紅色/綠色線條
R2_MERGENOTPEN 不可見的藍色線條
R2_MERGEPEN 可見的白色線條
R2_MERGEPENNOT 可見的白色線條
R2_NOP 不可見的藍色線條
R2_NOT 可見的紅色/綠色線條
R2_NOTCOPYPEN 可見的黑色線條
R2_NOTMASKPEN 可見的紅色/綠色線條
R2_NOTMERGEPEN 可見的黑色線條
R2_NOTXORPEN 不可見的藍色線條
R2_WHITE 可見的白色線條
R2_XORPEN 可見的紅色/綠色線條