改变深色的颜色矩阵
Color matrix to change dark color
我尝试制作一个为图像着色的函数 - 去饱和并用提供的 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]);
}
我尝试修改矩阵但没有成功。请提供任何帮助或 link 信息或代码让我前进一点。
您可以尝试使用上面的方法,但在应用之前,您需要反转图像和颜色。然后在应用矩阵之后,再次反转图像。
毕竟我在这个结果中找到了诀窍:
concat([(LUMA_R), (LUMA_G), (LUMA_B), 0, amount*255*r,
(LUMA_R), (LUMA_G), (LUMA_B), 0, amount*255*g,
(LUMA_R), (LUMA_G), (LUMA_B), 0, amount*255*b,
0, 0, 0, 1, 0]);
它完全符合我的需要。
感谢 Quasimondo 提供他出色的 AS3 库。帮助我理解颜色矩阵变换。
我尝试制作一个为图像着色的函数 - 去饱和并用提供的 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]);
}
我尝试修改矩阵但没有成功。请提供任何帮助或 link 信息或代码让我前进一点。
您可以尝试使用上面的方法,但在应用之前,您需要反转图像和颜色。然后在应用矩阵之后,再次反转图像。
毕竟我在这个结果中找到了诀窍:
concat([(LUMA_R), (LUMA_G), (LUMA_B), 0, amount*255*r,
(LUMA_R), (LUMA_G), (LUMA_B), 0, amount*255*g,
(LUMA_R), (LUMA_G), (LUMA_B), 0, amount*255*b,
0, 0, 0, 1, 0]);
它完全符合我的需要。 感谢 Quasimondo 提供他出色的 AS3 库。帮助我理解颜色矩阵变换。