2010年12月21日 星期二

[AS3] flash.filter.ColorMatrixFilter(matrix) - matrix變形矩陣改變色相(hue)

原圖~



matrix變形矩陣原值,此值忠於原圖,不會改變原圖的色相、飽合度、明度等。



matrix變形矩陣改值例子:交換RGB三色Channel的內容,及修改其數值大小與正負,可改變 Bitmap 物件(點陣圖) 色相(hue)


991221_ColorMF_hue.swf




package  {
 import flash.display.Sprite;
 import flash.filters.ColorMatrixFilter;
 import flash.display.BitmapData;
 import flash.display.Bitmap;
 import flash.display.DisplayObject;
 //
 public class ColorMF_hue_991221 extends Sprite{
  public var bmd:BitmapData = new MyPhoto(0,0);
  public var bm:Bitmap = new Bitmap(bmd);
  public function ColorMF_hue_991221() {
   addChild(bm);
   var matrix:Array = new Array();
   matrix = matrix.concat([0, 0, 1, 0, 0]); //RED Channel
   matrix = matrix.concat([0, 1, 0, 0, 0]); //GREEN Channel
   matrix = matrix.concat([1, 0, 0, 0, 0]); //BLUE Channel
   matrix = matrix.concat([0, 0, 0, 1, 0]); //ALPHA Channel
   var myFilter:ColorMatrixFilter = new ColorMatrixFilter(matrix);
   bm.filters = [myFilter];
  }

 }
 
}

沒有留言: