如何使用动作脚本添加/删除图像中的颜色

时间:2013-09-17 10:43:18

标签: actionscript-3 flex flex4 adobe flash-builder

我面临着添加/删除图像颜色的问题。 例如,我有abc.png图像包含3种颜色(红色,绿色,蓝色)。我想从图像中删除红色的颜色区域而不影响其他图像颜色。

请与我分享,如果有人对此有所了解。

感谢。

1 个答案:

答案 0 :(得分:0)

var s:Sprite = new Sprite();
var bitmapData:BitmapData = new BitmapData( s.width, s.height, true, 0 );
bitmapData.draw( s );

for ( var i:int = 0 ; i < bitmapData.width ; i++ ) {
    for ( var j:int = 0 ; j < bitmapData.height ; j++ ) {
        var pixelColor:uint = bitmapData.getPixel( i, j );

        var redChannel:uint = ( ( pixelColor >> 16 ) & 0xFF );
        var greenChannel:uint = ( ( pixelColor >> 8 ) & 0xFF );
        var blueChannel:uint = ( pixelColor & 0xFF );

        //if ( // COMPARE COLOR TO YOURS USING EITHER YUV or CIE color space // ) {
            bitmapData.setPixel( i, j, 0 );
        }
    }
}

使用您想要的颜色空间比较颜色,这只是示例。 ( 你不能 使用RGB cs比较颜色相似度。

另外请记住,对精确子项使用draw()将失去所有变换,您可以考虑使用父变换或任何其他解决方案。