共用方式為


二進位點陣作業

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

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

運算元 意義
P 選取的畫筆
D 目的地點陣圖

 

這些作業中使用的布林運算子遵循。

運算子 意義
a 位元 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 可見的紅色/綠色線條