我面临着添加/删除图像颜色的问题。 例如,我有abc.png图像包含3种颜色(红色,绿色,蓝色)。我想从图像中删除红色的颜色区域而不影响其他图像颜色。
请与我分享,如果有人对此有所了解。
感谢。
答案 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()将失去所有变换,您可以考虑使用父变换或任何其他解决方案。