濾鏡這個東西貌似很複雜,一時半會搞不明白,先記下搞明白的部分。ConvolutionFilter 是一個矩陣盤繞濾鏡。(爲什麼叫盤繞我也不知道,估計就是周邊像素混合運算的意思。)這個濾鏡其實不是AS3的新東西,flash8的時候就有了。只不過,AS3裏功能更強大點。(不過強大的功能我還不會),它的效果類似photoshop裏的自定義濾鏡。所以要做不同效果的話在photoshop裏調好效果,然後把數值抄過來似乎是比較高效的方法。
下面是代碼:
//pic是庫裏的一張圖片,不過這裏有個沒明白的事情:
//把圖片設爲“類”之後,構建這個p1的時候提示需要兩個參數,而這兩個參數的值我不知道有什麼用。
var p1:pic=new pic(0,0);
//創建一個BitmapData對象,一會用他測試濾鏡。
//也不是一定要BitmapData對象纔可以用濾鏡,對於所有顯示對象都可以使用filters屬性來應用濾鏡。
var bmd:BitmapData=new BitmapData(500, 375);
//將p1繪製到bmdbmd裏
bmd.draw(p1);
//矩陣的兩個維度
var matrixX:Number = 3;
var matrixY:Number = 3;
//轉換矩陣,數組長度必須是上面的matrixX和matrixY的乘積,
//這裏代表就是個3×3的九宮格。這裏的值產生的效果是“浮雕”
var matrix:Array = new Array(-2,-1,0,-1,1,1,0,1,2);
//總計算值的除數,用來調平色彩,最大的用處是控制亮度。等同於photoshop自定義濾鏡裏的那個縮放。
var divisor:Number=1;
//總計算值的偏差,等同於photoshop自定義濾鏡裏的那個位移。
var bias:Number=0;
//創建一個ConvolutionFilter濾鏡對象
var filter:BitmapFilter = new ConvolutionFilter(matrixX, matrixY, matrix, divisor,bias);
//應用濾鏡,參數依次是:對象、對象區域、左上角座標、濾鏡。
bmd.applyFilter(bmd,bmd.rect,new Point(0,0),filter);
//BitmapData不是一個顯示對象,所以還是需要Bitmap來顯示一下。
var bm:Bitmap = new Bitmap(bmd);
addChild(bm);
再記幾種其他效果
模糊:
matrix=[1,1,1,1,1,1,1,1,1];
divisor=9;
銳化:
matrix=[0,-1,0,-1,5,-1,0,-1,0];
divisor=1;
查找邊緣:
matrix=[0,1,0,1,-4,1,0,1,0];
divisor=0.5;
as3學習筆記之ConvolutionFilter濾鏡
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
學習使用PureMVC一週,感受
ppanyong
2020-07-06 20:04:43
Andriod Studio3.0 創建項目出現 Gradle ‘xxx’ project refresh failed 問題 卡在download
镜祈君
2020-06-12 15:10:41
AS3.0 下載隊列類 幫助完成Flash隊列下載
ppanyong
2020-02-23 12:44:11
AS3+.Net以圖片形式保存塗鴉內容至服務器
ppanyong
2020-02-23 12:44:11
[轉載]AS3 JPEG Encoder應用:從Flash中保存圖片
ppanyong
2020-02-23 12:44:11
flash開發中提高性能方法的整理(分享)
smzquan86
2020-02-23 05:09:43
flexlib開源組件庫
smzquan86
2020-02-23 05:09:43
將Microsoft Kinect集成到你的Flex應用
smzquan86
2020-02-23 05:09:43
一大堆Web OS網址
smzquan86
2020-02-23 05:09:43
深入理解flash重繪
Carma
2018-09-04 05:35:19
AS3的正則表達式 去除字符串首尾空格
tix66
2018-09-01 00:34:06
Flash AS3 Super 用法 調用父類(超類)的構造函數或方法
tix66
2018-09-01 00:33:57
[as 3.0 學習筆記] 醜陋的mp3音樂播放器
lqg1122
2018-08-29 06:38:42
[as3 學習筆記]關於as3 display list 的總結
lqg1122
2018-08-29 06:38:42