flash位图技术研究篇(6):黑白画
2010-03-02 00:00:00 来源:WEB开发网继续把上面的资料记录一下,像素画是对每一个像素进行操作进行重组,而这些操作可以看到位图像素操作是可以变化出很多令人意想不到的效果。今天,把在网站看到的一些文章记录一下,关于黑白画像素操作。原理很简单,从一张图片可以看到是由一个个像素组成,可以看成是一个个细小的微粒。这些微粒包含了一些值,颜色值,这些值呈现出不同的颜色,as3可以对每一个像素进行索引,通过这个索引我们就可以对画面的某一些像素进行“动手脚”,在某一些值范围内设置白色,某一些值范围内设置黑色。
黑色:0x000000;
白色:0xffffff;
这样就能够实现到黑白画的效果。
演示的效果。
查看原图(大图)
1. package
2. {
3. import flash.display.Sprite;
4. import flash.display.Loader;
5. import flash.display.Bitmap;
6. import flash.display.BitmapData;
7. import flash.events.*;
8. import flash.net.*;
9. import flash.geom.Rectangle;
10. public class Main extends Sprite
11. {
12. private var loader:Loader;
13. private var url:String="3.jpg";
14. public function Main()
15. {
16. init();
17. }
18. //初始化
19. private function init():void
20. {
21. loader=new Loader();//外部加载一张图片
22. loader.load(new URLRequest(url));
23. loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
24. }
25. private function onComplete(event:Event):void
26. {
27.
28. var Width:Number=loader.content.width;
29. var Height:Number=loader.content.height;
30. addChild(new Bitmap(Bitmap(loader.content).bitmapData));
31.
32. var bmpData:BitmapData=new BitmapData(Width,Height,false,0xffffff);//新建一个空白的位图数据
33. bmpData.draw(loader);//获取影像
34.
35. //进行像素获取,重组像素
36. for (var i:int=0; i<Width; i++)
37. {
38. for (var j:int=0; j<Height; j++)
39. {
40. var color:uint=bmpData.getPixel(i,j);
41. if(color>0x3fffff)
42. bmpData.setPixel(i,j,0xffffff);//设置白色
43. else bmpData.setPixel(i,j,0x000000);//设置黑色
44. }
45. }
46. //显示到列表菜单
47. var bitmap:Bitmap=new Bitmap(bmpData);
48. bitmap.x=Width;
49. addChild(bitmap);
50.
51. }
52. }
53. }
- ››FLASH不等于运算符!=的使用实例
- ››FLASH不全等运算符!==
- ››FLASH字符串分隔符运算符
- ››FLASH% 模运算符
- ››Flash+、++、+= 加法运算符
- ››Flash, 逗号运算符
- ››flash中的-、--、-=减法运算符
- ››Flash的-Infinity 常数、.点运算符、/ 除法运算符...
- ››Flash两种注释方法/*..*/ 和// 注释行分隔符运算符...
- ››Flash的/=除法赋值运算符、=赋值运算符、== 等于运...
- ››Flash之?: 条件运算符、^ 按位 XOR 运算符、^= 按...
- ››Flash的_framesloaded代码示例
更多精彩
赞助商链接