我面临从图像中添加/删除颜色的问题。例如,我有包含 3 种颜色(红色、绿色、蓝色)的 abc.png 图像。我想在不影响其他图像颜色的情况下从图像中去除红色的颜色区域。
请与我分享,如果有人对此有想法。
谢谢。
我面临从图像中添加/删除颜色的问题。例如,我有包含 3 种颜色(红色、绿色、蓝色)的 abc.png 图像。我想在不影响其他图像颜色的情况下从图像中去除红色的颜色区域。
请与我分享,如果有人对此有想法。
谢谢。
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 或任何其他解决方案。