blog.Ring.idv.tw

Blur - 影像處理 for AS2

Blur - 影像處理 for AS2

可用來將影像模糊化~ Try it!

Blur

import flash.display.BitmapData;
function Blur():Void
{
	var myBitmapData:BitmapData = BitmapData.loadBitmap("brg");
	var height:Number = myBitmapData.height;
	var width:Number = myBitmapData.width;

	var gray:Array = new Array(width);

	for(var i:Number = 0 ; i < width ; i++)
		gray[i] = new Array(height);
		
	var gray2:Array = new Array(width);

	for(var i:Number = 0 ; i < width ; i++)
		gray2[i] = new Array(height);

	//RGB to GRAY
	for(var i:Number = 0 ; i < width ; i++)
	{
		for(var j:Number = 0 ; j < height ; j++)
		{
			var rgb:Number = myBitmapData.getPixel(i,j);
			var r:Number = 0xFF&(rgb >> 16);
			var g:Number = 0xFF&(rgb >> 8);
			var b:Number = 0xFF&rgb;			
			gray[i][j]= 0.299*r + 0.587*g +0.114*b;
		}
	}
	
	for(var x = 1; x < width-1;x++)
	{
		for(var y = 1; y < height-1;y++)
		{
			/**
			 00(a) 10(b) 20(c)
			 01(d) 11(*) 21(e)
			 02(f) 12(g) 22(h)
			*/
			var a = gray[x-1][y-1]*0.1;
			var b = gray[x][y-1]*0.1;
			var c = gray[x+1][y-1]*0.1;
			var d = gray[x-1][y]*0.1;
			var e = gray[x][y]*0.1;
			var f = gray[x+1][y]*0.1;
			var g = gray[x-1][y+1]*0.1;
			var h = gray[x][y+1]*0.1;
			var i = gray[x+1][y+1]*0.1;
			
			var gc = (a+b+c+d+e+f+g+h+i);
			
			gray2[x][y] = 0xff000000  |gc<<16 | gc<<8 | gc;
		}
	}
	
	//set pixel value
	for(var i:Number = 0 ; i < width ; i++)
	{
		for(var j:Number = 0 ; j < height ; j++)
		{
				
			myBitmapData.setPixel(i,j,gray2[i][j]);
		}
	}

	var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
	mc.attachBitmap(myBitmapData,this.getNextHighestDepth());
}
Blur();

2007-05-07 00:09:35

Leave a Comment

Copyright (C) Ching-Shen Chen. All rights reserved.

::: 搜尋 :::

::: 分類 :::

::: 最新文章 :::

::: 最新回應 :::

::: 訂閱 :::

Atom feed
Atom Comment