Aracılığıyla paylaş


İkili Raster İşlemleri

Bu bölümde, GetROP2 ve SetROP2 işlevleri tarafından kullanılan ikili raster-işlem kodları listelenir. Raster işlem kodları, GDI'nin seçilen kalemdeki bitleri hedef bit eşlem içindeki bitlerle nasıl birleştirildiğini tanımlar.

Her raster-operation kodu, seçilen kalemdeki piksellerin ve hedef bit eşlem değerlerinin birleştirildiği bir Boole işlemini temsil eder. Bu işlemlerde kullanılan iki işlenen aşağıdadır.

Işlenen Anlam
P Seçili kalem
D Hedef bit eşlem

 

Bu işlemlerde kullanılan Boole işleçleri aşağıdadır.

Operatör Anlam
a Bit Düzeyinde VE
n Bit Düzeyinde DEĞİl (ters)
o Bit Düzeyinde OR
x Bit düzeyinde özel OR (XOR)

 

Tüm Boole işlemleri Ters Lehçe gösteriminde sunulur. Örneğin, aşağıdaki işlem hedef bit eşlemdeki piksellerin değerlerini kalem ve seçili fırçanın piksel değerlerinin bir bileşimiyle değiştirir:

DPo 

Her raster-operation kodu, yüksek sıralı sözcüğü Boole işlem dizini olan ve düşük sıralı sözcüğü işlem kodu olan 32 bitlik bir tamsayıdır. 16 bit işlem dizini, iki parametredeki Boole işleminden kaynaklanan tüm olası sonuçları temsil eden sıfır genişletilmiş bir 8 bit değerdir (bu örnekte kalem ve hedef değerler). Örneğin, DPo ve DPan işlemleri için işlem dizinleri aşağıdaki listede gösterilir.

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

 

Aşağıdaki listede çizim modları ve temsil ettikleri Boole işlemleri özetlenmiştir.

Raster işlemi Boole işlemi
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

 

Tek renkli bir cihaz için GDI sıfır değerini siyaha, 1 değerini beyaza eşler. Bir uygulama kullanılabilir ikili raster işlemlerini kullanarak beyaz bir hedefe siyah kalemle çizim yapmaya çalışırsa, aşağıdaki sonuçlar oluşur.

Raster işlemi Sonuç
R2_BLACK Görünür siyah çizgi
R2_COPYPEN Görünür siyah çizgi
R2_MASKNOTPEN Görünür çizgi yok
R2_MASKPEN Görünür siyah çizgi
R2_MASKPENNOT Görünür siyah çizgi
R2_MERGENOTPEN Görünür çizgi yok
R2_MERGEPEN Görünür siyah çizgi
R2_MERGEPENNOT Görünür siyah çizgi
R2_NOP Görünür çizgi yok
R2_NOT Görünür siyah çizgi
R2_NOTCOPYPEN Görünür çizgi yok
R2_NOTMASKPEN Görünür çizgi yok
R2_NOTMERGEPEN Görünür siyah çizgi
R2_NOTXORPEN Görünür siyah çizgi
R2_WHITE Görünür çizgi yok
R2_XORPEN Görünür çizgi yok

 

Bir renk cihazı için GDI, kalemin ve hedefin renklerini göstermek için RGB değerlerini kullanır. RGB renk değeri, her biri belirtilen rengin yoğunluğunu belirten kırmızı, yeşil ve mavi renk alanı içeren uzun bir tamsayıdır. Yoğunluklar 0 ile 255 arasında değişir. Değerler, uzun tamsayının üç düşük sıralı bayt cinsinden paketlenir. Kalemin rengi her zaman düz bir renktir, ancak hedefin rengi iki veya üç rengin karışımı olabilir. Bir uygulama kullanılabilir ikili raster işlemlerini kullanarak mavi bir hedefe beyaz kalemle çizim yapmaya çalışırsa, aşağıdaki sonuçlar oluşur.

Raster işlemi Sonuç
R2_BLACK Görünür siyah çizgi
R2_COPYPEN Görünür beyaz çizgi
R2_MASKNOTPEN Görünür siyah çizgi
R2_MASKPEN Görünmez mavi çizgi
R2_MASKPENNOT Görünür kırmızı/yeşil çizgi
R2_MERGENOTPEN Görünmez mavi çizgi
R2_MERGEPEN Görünür beyaz çizgi
R2_MERGEPENNOT Görünür beyaz çizgi
R2_NOP Görünmez mavi çizgi
R2_NOT Görünür kırmızı/yeşil çizgi
R2_NOTCOPYPEN Görünür siyah çizgi
R2_NOTMASKPEN Görünür kırmızı/yeşil çizgi
R2_NOTMERGEPEN Görünür siyah çizgi
R2_NOTXORPEN Görünmez mavi çizgi
R2_WHITE Görünür beyaz çizgi
R2_XORPEN Görünür kırmızı/yeşil çizgi