您的位置:首页 > 其它

flash位图技术研究篇(6):黑白画

2010-02-22 10:34 267 查看
继续把上面的资料记录一下,像素画是对每一个像素进行操作进行重组,而这些操作可以看到位图像素操作是可以变化出很多令人意想不到的效果。今天,把在网站看到的一些文章记录一下,关于黑白画像素操作。原理很简单,从一张图片可以看到是由一个个像素组成,可以看成是一个个细小的微粒。这些微粒包含了一些值,颜色值,这些值呈现出不同的颜色,as3可以对每一个像素进行索引,通过这个索引我们就可以对画面的某一些像素进行“动手脚”,在某一些值范围内设置白色,某一些值范围内设置黑色。

黑色:0x000000;

白色:0xffffff;



这样就能够实现到黑白画的效果。





演示的效果。







package 
{
	import flash.display.Sprite;
	import flash.display.Loader;
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.events.*;
	import flash.net.*;
	import flash.geom.Rectangle;
	public class Main extends Sprite
	{
		private var loader:Loader;
		private var url:String="3.jpg";
		public function Main()
		{
			init();
		}
		//初始化
		private function init():void
		{
			loader=new Loader();//外部加载一张图片
			loader.load(new URLRequest(url));
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
		}
		private function onComplete(event:Event):void
		{   
		    
			var Width:Number=loader.content.width;
			var Height:Number=loader.content.height;
			addChild(new Bitmap(Bitmap(loader.content).bitmapData));
			
			var bmpData:BitmapData=new BitmapData(Width,Height,false,0xffffff);//新建一个空白的位图数据
			bmpData.draw(loader);//获取影像

			//进行像素获取,重组像素
			for (var i:int=0; i<Width; i++)
			{
				for (var j:int=0; j<Height; j++)
				{
					var color:uint=bmpData.getPixel(i,j);
					if(color>0x3fffff)
					bmpData.setPixel(i,j,0xffffff);//设置白色
					else bmpData.setPixel(i,j,0x000000);//设置黑色					
				}
			}
			//显示到列表菜单
			var bitmap:Bitmap=new Bitmap(bmpData);
			bitmap.x=Width;
			addChild(bitmap);
			
		}
	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: