小甲鱼 发表于 2014-11-2 20:18:04

SetROP2

函数功能:

SetROP2 函数用于设置当前的前景色混合模式(绘图模式)。

GDI 使用前景色混合模式,将画笔的颜色和画线显示区域的颜色混合后显示出来。


API 函数原型:

注释:_In_ 说明该参数是输入的。
int SetROP2(
_In_HDC hdc,
_In_int fnDrawMode
);

参数解析:


参数 含义
hdc指定设备环境句柄
fnDrawMode绘图模式,即混合模式,具体请看下边。


fnDrawMode 参数指定的混合模式可以是以下值之一:


混合模式 含义
R2_BLACK显示的颜色总是黑色
R2_COPYPEN 显示当前画笔的颜色
R2_MASKNOTPEN 显示的颜色是画笔颜色的取反值和屏幕颜色的交集,即:R2_NOTCOPYPEN & 屏幕颜色
R2_MASKPEN 显示的颜色是画笔颜色和屏幕颜色的交集,即:R2_COPYPEN & 屏幕颜色
R2_MASKPENNOT 显示的颜色是画笔颜色和屏幕颜色的取反值的交集,即:R2_COPYPEN & R2_NOT
R2_MERGENOTPEN 显示的颜色是画笔颜色的取反值和屏幕颜色的并集,即:R2_NOTCOPYPEN | 屏幕颜色
R2_MERGEPEN 显示的颜色是画笔颜色和屏幕颜色的并集,即:R2_COPYPEN | 屏幕颜色
R2_MERGEPENNOT显示的颜色是画笔颜色和屏幕颜色的取反值的并集,即:R2_COPYPEN | R2_NOT
R2_NOP不操作,颜色保持不变
R2_NOT显示的颜色是屏幕颜色的取反值
R2_NOTCOPYPEN 显示的颜色是当前画笔颜色的取反值
R2_NOTMASKPEN显示的颜色是画笔颜色和屏幕颜色的交集的取反值,即:~R2_MASKPEN
R2_NOTMERGEPEN 显示的颜色是画笔颜色和屏幕颜色的并集的取反值,即:~R2_MERGEPEN
R2_NOTXORPEN 显示的颜色是画笔颜色和屏幕颜色的异或结果的取反值,即:~R2_XORPEN
R2_WHITE显示的颜色总是白色
R2_XORPEN 显示的颜色是画笔颜色和屏幕颜色的异或结果,即:R2_COPYPEN ^ 屏幕颜色


返回值:

1. 如果函数调用成功,返回值是先前的混合模式(绘图模式);

2. 如果函数调用失败,返回值是 0。


备注:

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

2. 对像素颜色执行一个按位布尔运算称为“光栅操作”(Raster Operation, ROP),简称“ROP”,因为只涉及两种像素颜色(即画笔和屏幕),所以这里的布尔运算就被称为“二元光栅操作”,或者“ROP2”。

3. 混合模式(绘图模式)仅支持光栅设备,并不支持矢量设备。

【API档案】版权归鱼C工作室(www.fishc.com)所有,转载请注明来源。

WinSDK

Sayuqwq 发表于 2023-6-5 18:20:49

RGB怎么交集运算呢?
PS的混合模式使用的加减乘除运算{:10_243:}
页: [1]
查看完整版本: SetROP2