我一直在试验HTML5 canvas api,并编写了一个脚本,可以从彩色图像中创建黑白图像。RGB操作公式
为RGB的公式为灰度,我使用的是:r * 0.2989 + g * 0.5870 + b * 0.1140
我想知道是否有人通过RGB值操纵图像的任何更多的公式知道。
我一直在试验HTML5 canvas api,并编写了一个脚本,可以从彩色图像中创建黑白图像。RGB操作公式
为RGB的公式为灰度,我使用的是:r * 0.2989 + g * 0.5870 + b * 0.1140
我想知道是否有人通过RGB值操纵图像的任何更多的公式知道。
这里有一些
// ADD
c = Math.min(255, Math.max(0, c0 + c1))
// SUBTRACT
c = Math.max(0, c0 - c1)
// MULTIPLY
c = Math.floor((c1 * c0)/0xff)
// SCREEN
c = 255 - Math.floor((255 - c0) * (255 - c1)/255)
// LIGHTEN
c = c0 > c1 ? c0 : c1
// DARKEN
c = c0 < c1 ? c0 : c1
// DIFFERENCE
c = c0 > c1 ? c0 - c1 : c1 - c0
// INVERT (no influence from c1)
c = 255 - c0
// OVERLAY
c = c0 < 128 ? Math.floor((c1 * c0)/127) : 255 - Math.ceil((255 - c0) * (255 - c1)/127)
// HARDLIGHT
c = c1 < 128 ? Math.floor((c1 * c0)/127) : 255 - Math.ceil((255 - c0) * (255 - c1)/127)
其中C0和C1是彩色的十进制值,c是输出值
这里是变暗的图像的方式:
(r*0.5) + (g*0.5) + (b*0.5)
还有其它几种方法来操纵RGB的颜色,如阈值处理,交换颜色通道,仅示出红,绿,或蓝色通道,反转色彩,以及对比度和亮度等等。使用这些关键字搜索Web可以揭示改变图像颜色的其他方法。 This question解释如何使现有色彩的色调或阴影。特别要注意关于线性RGB和伽马校正的说法。
[RGB转换为灰度/强度]的可能重复(http://stackoverflow.com/questions/687261 /转换-rgb-to-grayscale-intensity) –
实际上这个问题比这个更广泛。它一直在寻求改变图像颜色的方法。 –
谢谢彼得澄清 –