Windows16种二元光栅操作(ROP2)运算方式

本文参考自 《Windows程序设计(第5版,珍藏版)》

显示器上所显示的线条外观受定义在设备环境中的绘图模式影响。画一条直线,其颜色由画笔的颜色和画线显示区域的颜色共同确定。

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

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

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

Windows定义了16种ROP2运算码, 在默认的设备环境中,绘图模式是R2_COPYPEN,

意思是Windows只是简单地将画笔像素复制到目标像素上,这也是我们通常所熟知的(即直接把画笔贴在背景上面如果两者同色,就什么都看不见了)


下表显示了所有16种ROP2绘图模式,表中指出了画笔颜色(P)和目标颜色(D)是如何组合成最终颜色的,

在布尔操作一栏使用了C语言的位运算显示目标像素与画笔像素的组合方式。



可以通过调用下面的函数设置绘图模式:

SetROP2(hdc, iDrawMode);

参数iDrawMode是上表中绘图模式一栏中给出的值,

可以通过调用下面的函数来获取当前绘图模式:

iDrawMode = GetROP2(hdc);


  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值