绘图模式

来源:互联网 发布:美工和平面设计前景 编辑:程序博客网 时间:2024/06/07 19:57

windows使用画笔绘制直线时,实际上是将画笔的像素颜色和目标显示表面的像素颜色按位进行布尔运算。

对像素颜色执行一个按位布尔运算称为“光栅操作”(rasteroperation,ROP)

绘制一条直线只涉及两种像素颜色(画笔和目标),这里的布尔运算就称作“二元光栅操作”,即“ROP2”

 

windows定义了 16 种 ROP2运算码,每一个都是windows组合画笔像素色和目标像素色的一种方式。

默认是

R2_COPYPEN         简单的复制画笔像素到目标像素

 

R2_NOTMERGEPEN     画笔颜色和目标颜色都是黑色时绘制白色,其他情况都是黑色

 

画笔(P):目标(D):

1 1

1 0

0 1

0 0

布尔操作

绘图模式

结果:

0

0

0

0

0

R2_BLACK

0

0

0

1

~(P | D)

R2_NOTMERGEPEN

0

0

1

0

~P & D

R2_MASKNOTPEN

0

0

1

1

~P

R2_NOTCOPYPEN

0

1

0

0

P & ~D

R2_MASKPENNOT

0

1

0

1

~D

R2_NOT

0

1

1

0

P ^ D

R2_XORPEN

0

1

1

1

~(P & D)

R2_NOTMASKPEN

1

0

0

0

P & D

R2_MASKPEN

1

0

0

1

~(P ^ D)

R2_NOTXORPEN

1

0

1

0

D

R2_NOP

1

0

1

1

~P | D

R2_MERGENOTPEN

1

1

0

0

P

R2_COPYPEN(内定)

1

1

0

1

P | ~D

R2_MERGEPENNOT

1

1

1

0

P | D

R2_MERGEPEN

1

1

1

1

1

R2_WHITE

 

 

SetROP2 (hdc,iDrawMode); //设置绘图模式

iDrawMode = GetROP2(hdc);       //获取绘图模式

0 0
原创粉丝点击