颜色矩阵改变深色

时间:2018-02-21 22:25:01

标签: actionscript-3 colormatrix

我尝试制作一个彩色图像的功能 - 去饱和并用提供的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]);
    }

我试图修改矩阵但没有成功。请您能否向我提供任何帮助或信息或代码的链接,这些信息或代码会让我向前推进一步。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用上述方法,但在应用之前,您可以反转图像和颜色。然后在应用矩阵后,再次反转图像。