把彩图变成黑白图.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
其实黑色和白色都是灰色。当灰色达到最亮程度时,就是白色;达到最暗的程度时就是黑色了。将彩图变成黑白图,专业的说应该是转化为灰度图像。在RGB颜色空间中,当R,G,B颜色分量的值相等时,所呈现的颜色就是灰色了(在明白RGB颜色空间的原理之后,这个不难理解)。我们通过对原图的R,G,B分量加权平均计算出具有同等亮度的灰度值来完成这个变化。下面上代码: package imgChange { import flash.display.Bitmap; import flash.display.BitmapData; public class imgTransform { public static function greyTransform(srcBMP:Bitmap):Bitmap { var srcW:Number = srcBMP.width; //获得源图像的宽度 var srcH:Number = srcBMP.height; //获得源图像的高度 var destData:BitmapData = new BitmapData(srcW,srcH); //初始化待填充像素矩阵 var srcData:BitmapData = srcBMP.bitmapData; //得到源图像像素矩阵 for(var j:int=0;jsrcH;j++){ //j为目标图像的纵坐标 for(var i:int=0;isrcW;i++){ //i为目标图像的横坐标 //将颜色分解成 r,g,b var rgbArray:Array = pixelProcess.retrieveRGBComponent(srcData.getPixel(i,j)); //实际中由于红色和黄色看上去比蓝色亮,取平均值的话会导致红黄区域较暗,而蓝色区域较亮,因此应用颜色分量的加权和来计算等效的亮度值 var Y:Number = 0.299*rgbArray[0]+0.587*rgbArray[1]+0.114*rgbArray[2]; var colorArray:Array = new Array(Y,Y,Y); // r,g,b合成颜色 var color:uint = pixelProcess.generateFromRGBComponent(colorArray); //设置目标图像某点的颜色 destData.setPixel(i,j,color); } } var destBMP:Bitmap = new Bitmap(destData); return destBMP; } } } package imgChange { import flash.display.Bitmap; import flash.display.BitmapData; public class pixelProcess { /* 输入一个颜色,将它拆成三个部分: * 红色,绿色和蓝色 */ public static function retrieveRGBComponent( color:uint ):Array { var r:Number = (color 16) 0xff; var g:Number = (color 8) 0xff; var b:Number = color 0xff; return [r, g, b]; } /* * 红色,绿色和蓝色三色组合 */ public static function generateFromRGBComponent( rgb:Array ):uint { if( rgb == null || rgb.length != 3 || rgb[0] 0 || rgb[0] 255 || rgb[1] 0 || rgb[1] 255 || rgb[2] 0 || rgb[2] 255 ) return 0xFFFFFF; return rgb[0] 16 | rgb[1] 8 | rgb[2]; } } } 下面看

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档