1. 濾鏡:import flash.filters.*包中,
如果對顯示對象應用濾鏡,則該顯示對象的 cacheAsBitmap 屬性值將設定為 true。 如果清除所有濾鏡,將恢複 cacheAsBitmap 的原始值。如果結果映像的寬度或高度超過 2880 像素,則不應用濾鏡。此濾鏡支援舞台縮放。 但是,它不支援常規縮放、旋轉和傾斜。 如果對象本身進行了縮放(如果將 scaleX 和 scaleY 設定為除 1.0 以外的其它值),濾鏡將不進行縮放。 只有使用者在舞台上進行放大時它才會縮放。
■ Drop shadow(投影濾鏡)
類名DropShadowFilter
DropShadowFilter(distance:Number = 4.0, angle:Number = 45, color:uint = 0, alpha:Number = 1.0, blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1.0, quality:int = 1, inner:Boolean = false, knockout:Boolean = false, hideObject:Boolean = false)
distance:Number (default = 4.0) — 陰影的位移距離,以像素為單位。
angle:Number (default = 45) — 陰影的角度,0 到 360 度(浮點)。
color:uint (default = 0) — 陰影顏色,採用十六進位格式 0xRRGGBB。 預設值為 0x000000。
alpha:Number (default = 1.0) — 陰影顏色的 Alpha 透明度值。 有效值為 0.0 到 1.0。 例如,.25 設定透明度值為 25%。
blurX:Number (default = 4.0) — 水平模糊量。 有效值為 0 到 255.0(浮點)。
blurY:Number (default = 4.0) — 垂直模糊量。 有效值為 0 到 255.0(浮點)。
strength:Number (default = 1.0) — 印記或跨頁的強度。 該值越高,壓印的顏色越深,而且陰影與背景之間的對比也越強。 有效值為 0 到 255.0。
quality:int (default = 1) — 應用濾鏡的次數。 使用 BitmapFilterQuality 常數:
BitmapFilterQuality.LOW
BitmapFilterQuality.MEDIUM
BitmapFilterQuality.HIGH
inner:Boolean (default = false) — 表示陰影是否為內側陰影。 值 true 指定內側陰影。 值 false 指定外側陰影(對象外緣周圍的陰影)。
knockout:Boolean (default = false) — 應用挖空效果 (true),這將有效地使對象的填色變為透明,並顯示文檔的背景顏色。 (使原對象為透明)
hideObject:Boolean (default = false) — 表示是否隱藏對象。 如果值為 true,則表示沒有繪製對象本身,只有陰影是可見的。
■ Blur(模糊濾鏡) ,模糊效果可以柔化映像的細節。
類名BlurFilter
BlurFilter(blurX:Number = 4.0, blurY:Number = 4.0, quality:int = 1)
blurX:Number (default = 4.0) — 水平模糊量。 有效值為 0 到 255.0(浮點值)。
blurY:Number (default = 4.0) — 垂直模糊量。 有效值為 0 到 255.0(浮點值)。
quality:int (default = 1) — 應用濾鏡的次數。 您可以使用 BitmapFilterQuality 常數來指定品質:
■ Glow(發光濾鏡) ,可以對顯示對象應用光暈效果。
類名GlowFilter
GlowFilter(color:uint = 0xFF0000, alpha:Number = 1.0, blurX:Number = 6.0, blurY:Number = 6.0, strength:Number = 2, quality:int = 1, inner:Boolean = false, knockout:Boolean = false)
color:uint (default = 0xFF0000) — 光暈顏色,採用十六進位格式 0xRRGGBB。 預設值為 0xFF0000。
alpha:Number (default = 1.0) — 顏色的 Alpha 透明度值。 有效值為 0 到 1。 例如,.25 設定透明度值為 25%。
blurX:Number (default = 6.0) — 水平模糊量。 有效值為 0 到 255(浮點)。 2 的乘方值(如 2、4、8、16 和 32)經過最佳化,呈現速度比其它值更快。
blurY:Number (default = 6.0) — 垂直模糊量。 有效值為 0 到 255(浮點)。 2 的乘方值(如 2、4、8、16 和 32)經過最佳化,呈現速度比其它值更快。
strength:Number (default = 2) — 印記或跨頁的強度。 該值越高,壓印的顏色越深,而且發光與背景之間的對比也越強。 有效值為 0 到 255。
quality:int (default = 1) — 應用濾鏡的次數。 使用 BitmapFilterQuality 常數:
BitmapFilterQuality.LOW
BitmapFilterQuality.MEDIUM
BitmapFilterQuality.HIGH
有關詳細資料,請參閱 quality 屬性的說明。
inner:Boolean (default = false) — 指定發光是否為內側發光。 值 true 指定發光是內側發光。 值 false 指定發光是外側發光(對象外緣周圍的發光)。
knockout:Boolean (default = false) — 指定對象是否具有挖空效果。 值為 true 將使對象的填充變為透明,並顯示文檔的背景顏色。
■ Bevel(斜角濾鏡) ,斜角效果使對象(如按鈕)具有三維外觀。
類名BevelFilter
BevelFilter(distance:Number = 4.0, angle:Number = 45, highlightColor:uint = 0xFFFFFF, highlightAlpha:Number = 1.0, shadowColor:uint = 0x000000, shadowAlpha:Number = 1.0, blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1, quality:int = 1, type:String = "inner", knockout:Boolean = false)
distance:Number (default = 4.0) — 斜角的位移距離,以像素為單位(浮點)。
angle:Number (default = 45) — 斜角的角度,0 至 360 度。 //可以想象成光線投射過來,光線的角度
highlightColor:uint (default = 0xFFFFFF) — 斜角的加亮顏色,0xRRGGBB。
highlightAlpha:Number (default = 1.0) — 加亮顏色的 Alpha 透明度值。 有效值為 0.0 到 1.0。 例如,.25 設定透明度值為 25%。
shadowColor:uint (default = 0x000000) — 斜角的陰影顏色,0xRRGGBB。
shadowAlpha:Number (default = 1.0) — 陰影顏色的 Alpha 透明度值。 有效值為 0.0 到 1.0。 例如,.25 設定透明度值為 25%。
blurX:Number (default = 4.0) — 水平模糊量,以像素為單位。 有效值為 0 到 255.0(浮點)。
blurY:Number (default = 4.0) — 垂直模糊量,以像素為單位。 有效值為 0 到 255.0(浮點)。
strength:Number (default = 1) — 印記或跨頁的強度。 該值越高,壓印的顏色越深,而且斜角與背景之間的對比也越強。 有效值為 0 到 255.0。
quality:int (default = 1) — 斜角的品質。 有效值為 0 至 15,但是對於大多數應用,可以使用 BitmapFilterQuality 常數:
BitmapFilterQuality.LOW
BitmapFilterQuality.MEDIUM
BitmapFilterQuality.HIGH
這些值越低,濾鏡的呈現速度就越快。 可以使用其它可用的數值來實現不同的效果。
type:String (default = "inner") — 斜角類型。 有效值為 BitmapFilterType 常數:BitmapFilterType.INNER、BitmapFilterType.OUTER 或 BitmapFilterType.FULL。
knockout:Boolean (default = false) — 應用挖空效果 (true),這將有效地使對象的填色變為透明,並顯示文檔的背景顏色。
■ Gradient bevel(漸層斜角濾鏡) ,可以對顯示對象應用漸層斜角效果。 漸層斜角是位於對象外部、內部或頂部的使用漸層色增強有斜面的邊緣。 有斜面的邊緣使對象具有三維外觀。
類名GradientBevelFilter
GradientBevelFilter(distance:Number = 4.0, angle:Number = 45, colors:Array = null, alphas:Array = null, ratios:Array = null, blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1, quality:int = 1, type:String = "inner", knockout:Boolean = false)
distance:Number (default = 4.0) — 位移距離。 有效值為 0 到 8。
angle:Number (default = 45) — 角度,以度為單位。 有效值為 0 到 360。
colors:Array (default = null) — 漸層中使用的 RGB 十六進位顏色值數組。 例如,紅色為 0xFF0000,藍色為 0x0000FF 等等。
alphas:Array (default = null) — colors 數組中對應顏色的 Alpha 透明度值的數組。 數組中每個元素的有效值為 0 到 1。 例如,.25 設定透明度值為 25%。
ratios:Array (default = null) — 顏色分布比例的數組;有效值為 0 到 255。
blurX:Number (default = 4.0) — 水平模糊量。 有效值為 0 到 255。 如果模糊量小於或等於 1,則表明原始映像是按原樣複製的。 預設值為 4。 2 的乘方值(如 2、4、8、16 和 32)經過最佳化,呈現速度比其它值更快。
blurY:Number (default = 4.0) — 垂直模糊量。 有效值為 0 到 255。 如果模糊量小於或等於 1,則表明原始映像是按原樣複製的。 2 的乘方值(如 2、4、8、16 和 32)經過最佳化,呈現速度比其它值更快。
strength:Number (default = 1) — 印記或跨頁的強度。 該值越高,壓印的顏色越深,而且斜角與背景之間的對比也越強。 有效值為 0 到 255。 值為 0 表示未應用濾鏡。
quality:int (default = 1) — 濾鏡的品質。 使用 BitmapFilterQuality 常數:
BitmapFilterQuality.LOW
BitmapFilterQuality.MEDIUM
BitmapFilterQuality.HIGH
有關詳細資料,請參閱 quality 屬性的說明。
type:String (default = "inner") — 斜角效果的放置。 可能的值為 BitmapFilterType 常數:
BitmapFilterType.OUTER -- 對象外緣上的斜角
BitmapFilterType.INNER -- 對象內緣上的斜角
BitmapFilterType.FULL -- 對象頂部的斜角
knockout:Boolean (default = false) — 指定是否應用挖空效果。 值為 true 將使對象的填充變為透明,並顯示文檔的背景顏色。
■ Gradient glow(漸層發光濾鏡) ,漸層發光是一種非常逼真的光暈效果,您可以控制色彩坡形。
類名GradientGlowFilter
GradientGlowFilter(distance:Number = 4.0, angle:Number = 45, colors:Array = null, alphas:Array = null, ratios:Array = null, blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1, quality:int = 1, type:String = "inner", knockout:Boolean = false)
distance:Number (default = 4.0) — 光暈的位移距離。
angle:Number (default = 45) — 角度,以度為單位。 有效值為 0 到 360。
colors:Array (default = null) — 定義漸層的顏色數組。 例如,紅色為 0xFF0000,藍色為 0x0000FF 等等。
alphas:Array (default = null) — colors 數組中對應顏色的 Alpha 透明度值的數組。 數組中每個元素的有效值為 0 到 1。 例如,值 .25 將 Alpha 透明度值設定為 25%。
ratios:Array (default = null) — 顏色分布比例的數組。 有效值為 0 到 255。 該值定義顏色採樣率為 100% 之處的寬度百分比。
blurX:Number (default = 4.0) — 水平模糊量。 有效值為 0 到 255。 如果模糊量小於或等於 1,則表明原始映像是按原樣複製的。 2 的乘方值(如 2、4、8、16 和 32)經過最佳化,呈現速度比其它值更快。
blurY:Number (default = 4.0) — 垂直模糊量。 有效值為 0 到 255。 如果模糊量小於或等於 1,則表明原始映像是按原樣複製的。 2 的乘方值(如 2、4、8、16 和 32)經過最佳化,呈現速度比其它值更快。
strength:Number (default = 1) — 印記或跨頁的強度。 該值越高,壓印的顏色越深,而且發光與背景之間的對比也越強。 有效值為 0 到 255。 值越大,壓印越強。 值為 0 意味著未應用濾鏡。
quality:int (default = 1) — 應用濾鏡的次數。 使用 BitmapFilterQuality 常數:
BitmapFilterQuality.LOW
BitmapFilterQuality.MEDIUM
BitmapFilterQuality.HIGH
type:String (default = "inner") — 濾鏡效果的放置。 可能的值是 flash.filters.BitmapFilterType 常數:
BitmapFilterType.OUTER -- 對象外緣上的發光
BitmapFilterType.INNER -- 對象內緣上的發光;預設值。
BitmapFilterType.FULL -- 對象頂部的發光
knockout:Boolean (default = false) — 指定對象是否具有挖空效果。 應用挖空效果將使對象的填充變為透明,並顯示文檔的背景顏色。 值為 true 將指定應用挖空效果;預設值為 false,即不應用挖空效果。
■ Color matrix(顏色矩陣濾鏡) ,該類允許飽和度更改、色相旋轉、亮度為 Alpha 以及各種其它效果。
類名ColorMatrixFilter
ColorMatrixFilter(matrix:Array = null)
matrix 此處為4*5矩陣,
紅,綠,藍通道的值由如下所示計算方法所決定:
CODE:
redResult = a[0] * srcR + a[1] * srcG + a[2] * srcB + a[3] * srcA + a[4]
greenResult = a[5] * srcR + a[6] * srcG + a[7] * srcB + a[8] * srcA + a[9]
blueResult = a[10] * srcR + a[11] * srcG + a[12] * srcB + a[13] * srcA + a[14]
alphaResult = a[15] * srcR + a[16] * srcG + a[17] * srcB + a[18] * srcA + a[19]
可以看出,第一行的值決定了紅色值,第二行決定綠色,第三行藍色,第四行是透明(Alpha)通道值。
如果你想在紅色通道加100(位移量),將a[4]設定為100,如:
圖. 紅色值增加100
如果想使綠色通道加倍,將a[6]設為2,如:
圖. 綠色加倍
如果你要使結果映像中的藍色與原圖的紅色數量相等,將a[10]設為1, a[12]設為0 ,如:
圖. 紅色決定藍色值
改變映像的亮度,你需要在每個色彩通道的值改變同樣的數量。最簡單的途徑是在每個通道都設定相同的位移量。位移量為正時可以增加亮度為負時可以減小亮度。(圖8) 是一個增加亮度的例子。
圖. 增加亮度
你也可以通過將每個色彩通道與一個值相乘按比例的改變亮度,大於1的增加亮度小於1減小亮度。
按照原理,將映像轉換為灰階圖,你需要將每個通道的部分設為等值。因為有三個通道,你可以將每個通道乘以0.33並將它們相加得到結果值。如(圖9)
圖 灰階圖矩陣
■ Convolution(卷積濾鏡), 卷積將輸入映像的像素與相鄰的像素合并以產生映像。通過卷積,可以實現大量的映像效果,包括模糊、邊緣檢測、銳利化、浮雕和斜角。
類名ConvolutionFilter
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) //綠色部分參數最常用
matrixX:Number (default = 0) — 矩陣的 x 維度(矩陣中列的數目)。 預設值為 0。
matrixY:Number (default = 0) — 矩陣的 y 維度(矩陣中行的數目)。 預設值為 0。
matrix:Array (default = null) — 用於矩陣轉換的值的數組。 數組中的項數必須等於 matrixX * matrixY。
divisor:Number (default = 1.0) — 矩陣轉換中使用的除數。 預設值為 1。 如果除數是所有矩陣值的總和,則可調平結果的總體色彩強度。 忽略 0 值,此時使用預設值。
bias:Number (default = 0.0) — 要添加到矩陣轉換結果的偏差。 預設值為 0。
preserveAlpha:Boolean (default = true) — false 值表示未保留 Alpha 值,並且卷積適用於所有通道(包括 Alpha 通道)。 值為 true 表示只對色彩通道應用卷積。 預設值為 true。
clamp:Boolean (default = true) — 對於源映像之外的像素,如果值為 true,則表明通過複製輸入映像給定邊緣處的顏色值,沿著輸入映像的每個邊框按需要擴充輸入映像。 如果值為 false,則表明應按照 color 和 alpha 屬性中的指定使用其它顏色。 預設值為 true。
color:uint (default = 0) — 要替換源映像之外的像素的十六進位顏色。
alpha:Number (default = 0.0) — 替換顏色的 Alpha。
這裡matrix即為要與映像進行卷積操作的矩陣,一般稱為模板。matrixX和matrixY指明了模板的大小。簡單起見,我們以3*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
a0—a8分別為matrix[0]—matrix[8]
可以簡單理解為:
一個3*3大小的模板覆蓋在映像上,並在映像上移動。模板中心位置(matrix[4])處映像的像素值為模板下9個像素值與模板各個元素值的加權求和(這裡的求和是分別對每個a、r、g、b每個通道進行求和),再除以一個係數divisor防止映像過飽和。最終加上位移量bias。(邊界位置不考慮。)
■ Displacement map(置換圖濾鏡),實現了映像像素的替換、重組,最直觀的理解就是透過水麵看下面。
類名DisplacementMapFilter
DisplacementMapFilter(mapBitmap:BitmapData = null, mapPoint:Point = null, componentX:uint = 0, componentY:uint = 0, scaleX:Number = 0.0, scaleY:Number = 0.0, mode:String = "wrap", color:uint = 0, alpha:Number = 0.0)
mapBitmap:BitmapData (default = null) — 包含置換映射資料的 BitmapData 對象。
mapPoint:Point (default = null) — 一個值,它包含目標顯示對象的左上方相對於映射映像左上方的位移量。
componentX:uint (default = 0) — 說明在映射映像中使用哪個色彩通道來置換 x 結果。 可能的值為 BitmapDataChannel 常數。
componentY:uint (default = 0) — 說明在映射映像中使用哪個色彩通道來置換 y 結果。 可能的值為 BitmapDataChannel 常數。
scaleX:Number (default = 0.0) — 用於縮放映射計算的 x 置換結果的乘數。
scaleY:Number (default = 0.0) — 用於縮放映射計算的 y 置換結果的乘數。
mode:String (default = "wrap") — 濾鏡模式。 可能的值為 DisplacementMapFilterMode 常數。
color:uint (default = 0) — 指定對於超出範圍的替換應用什麼顏色。 置換的有效範圍是 0.0 到 1.0。如果 mode 設定為 DisplacementMapFilterMode.COLOR,則使用此參數。
alpha:Number (default = 0.0) — 指定對於超出範圍的替換應用什麼 Alpha 值。 它被指定為 0.0 到 1.0 之間的標準值。例如,.25 設定透明度值為 25%。 如果 mode 設定為 DisplacementMapFilterMode.COLOR,則使用此參數。