Win32 API提供了许多使用当前选择的画笔到设备上下文来执行位图操作的功能。例如,PatBlt功能将窗口中的矩形区域中的画笔复制到一起,FloodFill功能会在指定颜色范围内的区域内复制画笔(不像PatBlt,FloodFill)填充非矩形)。
PatBlt函数名称(模式块传输的缩写)意味着该函数简单地复制画笔(或图案),直到它填充指定的矩形。但是,功能实际上更强大。在复制画笔之前,它通过使用光栅操作(ROP)将图案的颜色数据与视频显示器上现有像素的颜色数据相结合。ROP是应用于复制画笔的颜色数据的位和显示设备上的目标矩形的颜色数据的位的按位操作。Win32 API中有256个ROP;但是,PatBlt函数仅识别那些需要模式和目的地(不需要源的)目标。下表列出了五个最常见的ROP。
ROP | 描述 |
PATCOPY | 将模式复制到目标位图。 |
PATINVERT | 通过使用布尔OR运算符将目标位图与模式组合。 |
DSTINVERT | 反转目标位图。 |
BLACKNESS | 将所有输出转换为二进制零。 |
WHITENESS | 将所有输出转换为二进制。 |
FloodFill功能在由指定颜色限定的区域内复制画笔。但是,与PatBlt功能不同,FloodFill不将画笔的颜色数据与显示器上的像素的颜色数据组合;它只是将显示器上封闭区域内的所有像素的颜色设置为当前选定到设备上下文中的画笔颜色。