Delen via


Binaire rasterbewerkingen

In deze sectie worden de binaire rasterbewerkingscodes vermeld die worden gebruikt door de functies GetROP2 en SetROP2. Rasterbewerkingscodes definiëren hoe GDI de bits van de geselecteerde pen combineert met de bits in de doel bitmap.

Elke rasterbewerkingscode vertegenwoordigt een Booleaanse bewerking waarin de waarden van de pixels in de geselecteerde pen en de doel bitmap worden gecombineerd. Hier volgen de twee operanden die in deze bewerkingen worden gebruikt.

Operand Betekenis
P Geselecteerde pen
D Doel bitmap

 

De Booleaanse operators die in deze bewerkingen worden gebruikt, volgen.

Bediener Betekenis
een Bitwise AND
n Bitwise NOT (inverse)
o Bitsgewijze OR
x Bitwise exclusieve OR (XOR)

 

Alle Booleaanse bewerkingen worden weergegeven in omgekeerde Poolse notatie. Met de volgende bewerking worden bijvoorbeeld de waarden van de pixels in de doel bitmap vervangen door een combinatie van de pixelwaarden van de pen en de geselecteerde kwast:

DPo 

Elke rasterbewerkingscode is een 32-bits geheel getal waarvan het woord in hoge volgorde een Booleaanse bewerkingsindex is en waarvan het woord in lage volgorde de bewerkingscode is. De 16-bits bewerkingsindex is een met nul uitgebreide 8-bits waarde die alle mogelijke resultaten vertegenwoordigt die het gevolg zijn van de Boole-bewerking op twee parameters (in dit geval de pen- en doelwaarden). De bewerkingsindexen voor de DPo- en DPan-bewerkingen worden bijvoorbeeld weergegeven in de volgende lijst.

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

 

De volgende lijst bevat een overzicht van de tekenmodi en de Booleaanse bewerkingen die ze vertegenwoordigen.

Rasterbewerking Booleaanse bewerking
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

 

Voor een monochroom apparaat wijst GDI de waarde nul toe aan zwart en de waarde 1 op wit. Als een toepassing probeert te tekenen met een zwarte pen op een witte bestemming met behulp van de beschikbare binaire rasterbewerkingen, vinden de volgende resultaten plaats.

Rasterbewerking Resultaat
R2_BLACK Zichtbare zwarte lijn
R2_COPYPEN Zichtbare zwarte lijn
R2_MASKNOTPEN Geen zichtbare lijn
R2_MASKPEN Zichtbare zwarte lijn
R2_MASKPENNOT Zichtbare zwarte lijn
R2_MERGENOTPEN Geen zichtbare lijn
R2_MERGEPEN Zichtbare zwarte lijn
R2_MERGEPENNOT Zichtbare zwarte lijn
R2_NOP Geen zichtbare lijn
R2_NOT Zichtbare zwarte lijn
R2_NOTCOPYPEN Geen zichtbare lijn
R2_NOTMASKPEN Geen zichtbare lijn
R2_NOTMERGEPEN Zichtbare zwarte lijn
R2_NOTXORPEN Zichtbare zwarte lijn
R2_WHITE Geen zichtbare lijn
R2_XORPEN Geen zichtbare lijn

 

Voor een kleurenapparaat gebruikt GDI RGB-waarden om de kleuren van de pen en de bestemming weer te geven. Een RGB-kleurwaarde is een lang geheel getal dat een rood, groen en een blauw kleurveld bevat, waarbij elk de intensiteit van de opgegeven kleur aangeeft. Intensiteiten variëren van 0 tot en met 255. De waarden worden verpakt in de drie bytes met lage volgorde van het lange gehele getal. De kleur van een pen is altijd een effen kleur, maar de kleur van de bestemming kan een combinatie van twee of drie kleuren zijn. Als een toepassing probeert te tekenen met een witte pen op een blauwe bestemming met behulp van de beschikbare binaire rasterbewerkingen, treden de volgende resultaten op.

Rasterbewerking Resultaat
R2_BLACK Zichtbare zwarte lijn
R2_COPYPEN Zichtbare witte lijn
R2_MASKNOTPEN Zichtbare zwarte lijn
R2_MASKPEN Onzichtbare blauwe lijn
R2_MASKPENNOT Zichtbare rode/groene lijn
R2_MERGENOTPEN Onzichtbare blauwe lijn
R2_MERGEPEN Zichtbare witte lijn
R2_MERGEPENNOT Zichtbare witte lijn
R2_NOP Onzichtbare blauwe lijn
R2_NOT Zichtbare rode/groene lijn
R2_NOTCOPYPEN Zichtbare zwarte lijn
R2_NOTMASKPEN Zichtbare rode/groene lijn
R2_NOTMERGEPEN Zichtbare zwarte lijn
R2_NOTXORPEN Onzichtbare blauwe lijn
R2_WHITE Zichtbare witte lijn
R2_XORPEN Zichtbare rode/groene lijn