颜色近似和抖动

【勇芳软件工作室】汉化HomePreviousNext

虽然应用程序可以使用颜色而不考虑设备的颜色能力,但是所得到的输出可能不像输入颜色被仔细选择的信息和令人愉快的。如果有的话,很少设备保证每个可能的颜色值的精确匹配;因此,如果应用程序请求设备无法生成的颜色,Windows将通过使用设备可以生成的颜色来近似该颜色。例如,如果应用程序尝试为黑白打印机创建红色笔,则会收到黑色笔,__ Windows使用黑色作为红色的近似值。

应用程序可以通过使用GetNearestColor功能来发现Windows是否会逼近给定的颜色。该函数采用颜色值,并返回设备可以生成的最接近的匹配颜色的颜色值。Windows用于确定此近似值的方法取决于设备驱动程序及其颜色功能。在大多数情况下,近似颜色的总体强度最接近请求颜色的强度。

当应用程序创建一个笔或设置文本的颜色时,如果没有完全匹配的话,Windows总是接近一个颜色。当应用程序创建一个实心的画笔时,Windows可能会尝试通过抖动来模拟所请求的颜色。【抖动】通过在图案中交替使用两种或更多种颜色来模拟颜色。例如,可以通过交替的不同的红色和白色的组合来模拟不同的粉红色。根据颜色和图案,抖动可以产生合理的模拟。它对于单色设备最有用,因为它可以扩展可用的“颜色”数量,远远超出了简单的黑白。

用于创建抖动颜色的方法取决于设备驱动程序。大多数设备驱动程序使用标准抖动算法,它根据请求的红色,绿色和蓝色的强度值生成一个图案。通常,设备无法生成的任何请求的颜色都需要进行仿真,但是当Windows模拟颜色时,不会通知应用程序。此外,应用程序不能修改或更改设备驱动程序的抖动算法。然而,应用程序可以通过创建和使用模式画笔来绕过算法。以这种方式,应用程序通过在用于创建画笔的位图中组合纯色来创建自己的抖动颜色。