如何将现有的彩色图像变成黑白图像?

时间:2009-12-03 23:26:35

标签: actionscript-3 image colors

动作脚本3.0中存在哪些不同的方法? 我找到了这个图书馆:mojocolors 但这更像是图形颜色我想......

THX

4 个答案:

答案 0 :(得分:1)

通常,假设您从RGB图像开始,将其转换为HSI颜色空间并使用I(强度)组件。

答案 1 :(得分:1)

要将图像转换为灰度,您需要迭代图像缓冲区中的每个像素,并将R,G和B分量平均为一个实体,然后将其复制三次以获得新颜色。伪代码(假设8位颜色):

for each pixel in buffer: 
    pixel.rgb = ((pixel.red + pixel.green + pixel.blue) / 3) * 0x010101;

我相信你可以用Adobe的PixelBender来做更快的事情。

答案 2 :(得分:1)

var n:Number = 1/3;
var matrix:Array = [n,n,n,0,0,
                    n,n,n,0,0,
                    n,n,n,0,0, 
                    0,0,0,1,0];

var cmf:ColorMatrixFilter = new ColorMatrixFilter(matrix);
bitmap.filters = [cmf];

答案 3 :(得分:0)

将此方法创建的过滤器应用于包含您想要的黑白图像的DisplayObject:

public static function createBlackAndWhiteFilter():ColorMatrixFilter {
    var rLum:Number = 0.2225;
    var gLum:Number = 0.7169;
    var bLum:Number = 0.0606;

    var bwMatrix:Array = [rLum, gLum, bLum, 0, 0, rLum, gLum, bLum, 0, 0, rLum, gLum, bLum, 0, 0, 0, 0, 0, 1, 0];  
    return new ColorMatrixFilter(bwMatrix);
}//createBlackAndWhiteFilter