可用來將影像模糊化~ 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();
