使用
ColorMatrixFilter
类可以将 4 x 5 矩阵转换应用于输入图像上的每个像素的 RGBA 颜色和 Alpha 值,以生成具有一组新的 RGBA 颜色和 Alpha 值的结果。该类允许饱和度更改、色相旋转、亮度为 Alpha 以及各种其他效果。
使用这种方法可以不用出多余的图片资源
-
先说下白鹭怎么使用这个接口:
let colorFilter: egret.ColorMatrixFilter = new egret.ColorMatrixFilter(colorGrayMatrix); (<eui.Image>this.skin["i_Power"]).filters = [colorFilter];
-
你将每个颜色通道与一个值相乘按比例的改变亮度,大于1的增加亮度小于1减小亮度,那么将图像转换为灰度图,你需要将每个通道的部分设为等值,如下:
//灰色矩阵: let colorGrayMatrix = [ 0.3, 0.6, 0, 0, 0, 0.3, 0.6, 0, 0, 0, 0.3, 0.6, 0, 0, 0, 0, 0, 0, 1, 0 ];
其他:
//反转:
let colorOPPMatrix = [
-1, 0, 0, 1, 1,
0, -1, 0, 1, 1,
0, 0, -1, 1, 1,
0, 0, 0, 1, 0
];