Yen*_*ens 5 flash actionscript-3 bitmapdata
如何在AS3中将彩色位图的位图数据更改为黑白?我正在为闪存中的CMS开发一个简单的图像编辑器工具.
人们应该能够将上传的位图的颜色切换为黑白.我希望bitmapdata本身改变所以我可以用Adobe的JPGEncoder类将其写入ByteArray.
bac*_*dos 27
这将是我认为最优雅的解决方案(与source你同在BitmapData):
const rc:Number = 1/3, gc:Number = 1/3, bc:Number = 1/3;
source.applyFilter(source.bitmapData, source.bitmapData.rect, new Point(), new ColorMatrixFilter([rc, gc, bc, 0, 0,rc, gc, bc, 0, 0, rc, gc, bc, 0, 0, 0, 0, 0, 1, 0]));
Run Code Online (Sandbox Code Playgroud)
与flash.geom::Point和flash.filters::ColorMaxtrixFilter...
ColorMatrixFilter允许许多事情,如色调变换,色彩,闪电,变暗和去饱和等......否则BitmapData::paletteMap,BitmapData::colorTransform是很好的补充......
只是想注意,使用以下内容
const rc:Number = 1/3, gc:Number = 1/2, bc:Number = 1/6;
Run Code Online (Sandbox Code Playgroud)
看起来更自然,因为主观上#00FF00比#FF0000它更亮,而后者更亮#0000FF
那么祝你好运吧 ... ;)
格尔茨
back2dos