making things move as3 閱讀筆記—繪圖API 續

來源:互聯網
上載者:User

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 常數來指定品質:

  •       flash.filters.BitmapFilterQuality.LOW
  •       flash.filters.BitmapFilterQuality.MEDIUM
  •       flash.filters.BitmapFilterQuality.HIGH
  • 高品質接近高斯模糊。 對於大多數應用,這三個值已足夠了。 雖然您可以使用不超過 15 的其它數值來達到不同的效果,但是請注意,值越高,呈現速度越慢。

■ 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,則使用此參數。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.