flash – AS3:如何将彩色位图的BitmapData更改为黑白?

前端之家收集整理的这篇文章主要介绍了flash – AS3:如何将彩色位图的BitmapData更改为黑白?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在AS3中将彩色位图的位图数据更改为黑白?
我正在为flash中的CMS开发一个简单的图像编辑器工具.

人们应该能够将上传的位图的颜色切换为黑白.我希望bitmapdata本身改变所以我可以用Adobe的JPGEncoder类将其写入ByteArray.

解决方法

这将是我认为最优雅的解决方案(源代码为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,rc,1,0]));

使用flash.geom :: Point和flash.filters :: ColorMaxtrixFilter …

ColorMatrixFilter允许很多东西,比如色调偏移,色彩,闪电,变暗和去饱和等等……否则BitmapData :: paletteMap和BitmapData :: colorTransform是很好的补充……

只是想注意,使用以下内容

const rc:Number = 1/3,gc:Number = 1/2,bc:Number = 1/6;

看起来更自然,因为主观上,#00FF00比#FF0000更亮,后者反过来比#0000FF更亮

那么祝你好运吧 …

猜你在找的Flash相关文章