我尝试制作一个彩色图像的功能 - 去饱和并用提供的RGB颜色替换深色。
我从Mario Klingemann AS3 ColorMatrix库中找到了类似的功能,它可以在保持黑暗的同时取代浅色。
public function colorize(rgb:int, amount:Number=1):void
{
const LUMA_R:Number = 0.212671;
const LUMA_G:Number = 0.71516;
const LUMA_B:Number = 0.072169;
var r:Number;
var g:Number;
var b:Number;
var inv_amount:Number;
r = (((rgb >> 16) & 0xFF) / 0xFF);
g = (((rgb >> 8) & 0xFF) / 0xFF);
b = ((rgb & 0xFF) / 0xFF);
inv_amount = (1 - amount);
concat([(inv_amount + ((amount * r) * LUMA_R)), ((amount * r) * LUMA_G), ((amount * r) * LUMA_B), 0, 0,
((amount * g) * LUMA_R), (inv_amount + ((amount * g) * LUMA_G)), ((amount * g) * LUMA_B), 0, 0,
((amount * b) * LUMA_R), ((amount * b) * LUMA_G), (inv_amount + ((amount * b) * LUMA_B)), 0, 0,
0, 0, 0, 1, 0]);
}
我试图修改矩阵但没有成功。请您能否向我提供任何帮助或信息或代码的链接,这些信息或代码会让我向前推进一步。
答案 0 :(得分:1)
您可以尝试使用上述方法,但在应用之前,您可以反转图像和颜色。然后在应用矩阵后,再次反转图像。