基本的图像处理操作之一是颜色操作,也就是根据一定的规则修改图像中像素的值。例如说改变图像的亮度、对比度,进行色彩替换,或者是对图像进行曲线操作,复杂一点的还有色彩空间矢量化等。
修改图像的亮度和对比度实际上是对像素值进行线性变换:
r = r * alpha + beta
g = g * alpha + beta
b = b * alpha + beta
亮度变化比较简单,就是在上面的公式中令alpha=1, beta为输入值就可以了:
var filters = {
'brightness' : function( src, val ) {
if( src.type === 'RGBAImage' ) {
var dc = new Color(val, val, val, 0);
return src.map(function( c ) {
var nc = c.add(dc);
return nc.clamp();
});
}
else {
throw "Not a RGBA image!";
}
}
}