0

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

请与我分享,如果有人对此有想法。

谢谢。

4

1 回答 1

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() 将失去所有的变换,你可以考虑使用 parent 或任何其他解决方案。

于 2013-09-17T14:27:20.353 回答