標籤雲

搜尋此網誌

2009/03/18

矩陣迴旋濾鏡-ConvolutionFilter

flash.filters.ConvolutionFilter 將輸入影像內的像素和鄰近的像素結合產生影像。達到包含模糊、邊緣偵測、銳利、浮雕和斜角各種效果。

適用物件, 套用方式與尺寸限制: 與 ColorMatrixFilter 同

屬性:
matrix : Array
//用於矩陣變化的值陣列。必須等於 matrixX * matrixY
//矩陣迴旋係依據 n x m 矩陣,來描述輸入影像內的指定像素值如何與鄰近像素值結合以產生結果像素值。每一個結果像素都是根據將矩陣套用到對應的指定像素及其鄰近像素所決定。
//對於 3 x 3 矩陣迴旋,下列公式可用於每一個獨立的顏色色版:
//dst (x, y) = ((src (x-1, y-1) * a0 + src(x, y-1) * a1....
// src(x, y+1) * a7 + src (x+1,y+1) * a8) / divisor) + bias

matrixX : Number //矩陣的 x 維度 (矩陣的行數)。
matrixY : Number //矩陣的 y 維度 (矩陣的列數)。

divisor : Number
//預設值為 1。 除數值是所有矩陣值總和除以結果的總顏色飽和度。 若值是 0 則忽略,改用預設值。

bias : Number
//增加至矩陣變化結果的偏差值量。偏差值會增加每個色版的顏色值,可讓深顏色看起來明亮一點。 預設值為 0。

preserveAlpha : Boolean //是否保留 Alpha 色版而未保留濾鏡效果,或是否套用到 Alpha 色版及顏色色版。
clamp : Boolean //是否應該固定影像。
color : uint //用來替代原始影像中像素的 16 進位顏色。
alpha : Number //替代顏色的 Alpha 值。


建構子:
ConvolutionFilter(
matrixX:Number = 0, matrixY:Number = 0,
matrix:Array = null,
divisor:Number = 1.0, bias:Number = 0.0,
preserveAlpha:Boolean = true, clamp:Boolean = true,
color:uint = 0, alpha:Number = 0.0)

//把所有參數初始化給 ConvolutionFilter 實體就對了

方法:
clone():BitmapFilter
//傳回此濾鏡物件的副本。

簡單範例如下:
var blur:Array =
[0,1,0,
1,1,1,
0,1,0];

var sharpen:Array =
[0,-1,0,
-1,5,-1,
0,-1,0];

var edge:Array =
[0,-1,0,
-1,4,-1,
0,-1,0];

var emboss:Array =
[-2,-1,0,
-1,1,1,
0,1,2];

沒有留言: