Flex 图像处理: 黑白滤镜

Categories: Flex; Tagged with: ; @ May 28th, 2009 22:41

需求: 在某些时候, 如客户下线, 须将头像一类的图片变为黑白.

解决: 使用颜色矩阵滤镜.

效果: 如下图:

image

姓名后坠有"/黑白"[Absent]的图像为滤镜使用后的效果

使用方法:

当用户考勤状态为Present时:

//如果没有使用其他滤镜, 直接简写为:

_img.filters = [new ColorMatrixFilter([0.3086, 0.6094, 0.0820, 0, 0, 0.3086, 0.6094, 0.0820, 0,
0, 0.3086, 0.6094, 0.0820, 0, 0, 0, 0, 0, 1, 0])];

当状态为Absent时:

_img.filters = null;  // 去除黑白滤镜, 注意如果使用了其他滤镜, 则应单独从filters数组中除去黑白滤镜, 而不应直接设为null.

———————————-无关紧要的分割线—————————————–
另: new ColorMatrixFilter([0.3086, 0.6094, 0.0820, 0, 0, 0.3086, 0.6094, 0.0820, 0,
0, 0.3086, 0.6094, 0.0820, 0, 0, 0, 0, 0, 1, 0]) 的完整版:

var red:Number = 0.3086;
var green:Number = 0.694;
var blue:Number = 0.0820; //这三个值是提供标准的黑白效果
var cmf:ColorMatrixFilter = new ColorMatrixFilter(red, green, blue, 0, 0, red, green, blue, 0, 0, red, green, blue, 0, 0, 0, 0, 0, 1, 0);



// Proudly powered by Apache, PHP, MySQL, WordPress, Bootstrap, etc,.