WEB开发网
开发学院图形图像Flash flash位图技术研究篇(5):像素画 阅读

flash位图技术研究篇(5):像素画

 2010-03-02 00:00:00 来源:WEB开发网   
核心提示:今天光顾了外国的某一些博客对位图的应用,发现对位图的操作会变化出很多很多效果,flash位图技术研究篇(5):像素画,其中一篇是像素画的实现,借助这种对位图的像素操作应用,重组像素for(vari:int=0;i<Width;i+=step){for(varj:int=0;j<Height;j+=step)

今天光顾了外国的某一些博客对位图的应用,发现对位图的操作会变化出很多很多效果,其中一篇是像素画的实现,借助这种对位图的像素操作应用,重新组合成新的图片,然后拼合成一张新的图片。

思路很简单。借用这种手法应用对一些效果会很大帮助。如聚合与分散的像素动画。

flash位图技术研究篇(5):像素画

查看原图(大图)

左边是一张正常的,而右边是一张经过像素处理的灰太狼的图片。

通过外部加载回来的图片,获取到数据源,通过这个数据源我们可以借用bitmapdata 类的获取像素的值的操作,每一个像素包含RBG的值,通过getPixel(x,y)能够对位图进行像素获取。然后进行填充使用。最后产生出右边像素的画面的效果。主要涉及的方法应用是

两个循环获取像素的的值。

//进行像素获取,重组像素
   for (var i:int=0; i<Width; i+=step)
   {
    for (var j:int=0; j<Height; j+=step)
    {
     var color:uint=bmpData.getPixel(i,j);
     var rect:Rectangle=new Rectangle(i,j,step,step);
     bmpData.fillRect(rect,color);//填充像素
    }
   }

下面是实现过程,最主要了解到getPixel这个方法使用即可。

   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.         private var step:int=5;  
  15.         public function Main()  
  16.         {  
  17.             init();  
  18.         }  
  19.         //初始化  
  20.         private function init():void  
  21.         {  
  22.             loader=new Loader();//外部加载一张图片  
  23.             loader.load(new URLRequest(url));  
  24.             loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);  
  25.         }  
  26.         private function onComplete(event:Event):void  
  27.         {     
  28.               
  29.             var Width:Number=loader.content.width;  
  30.             var Height:Number=loader.content.height;  
  31.             addChild(new Bitmap(Bitmap(loader.content).bitmapData));  
  32.               
  33.             var bmpData:BitmapData=new BitmapData(Width,Height,false,0xffffff);//新建一个空白的位图数据  
  34.             bmpData.draw(loader);//获取影像  
  35.   
  36.             //进行像素获取,重组像素  
  37.             for (var i:int=0; i<Width; i+=step)  
  38.             {  
  39.                 for (var j:int=0; j<Height; j+=step)  
  40.                 {  
  41.                     var color:uint=bmpData.getPixel(i,j);  
  42.                     var rect:Rectangle=new Rectangle(i,j,step,step);  
  43.                     bmpData.fillRect(rect,color);//填充像素  
  44.                 }  
  45.             }  
  46.             //显示到列表菜单  
  47.             var bitmap:Bitmap=new Bitmap(bmpData);  
  48.             bitmap.x=Width;  
  49.             addChild(bitmap);  
  50.               
  51.         }  
  52.     }  
  53. } 

Tags:flash 位图 技术

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接