原圖:將被提升色彩飽合度。
參考此篇處理方式:
UNDERSTANDING AS3 COLORMATRIXFILTER CLASS
991221_ColorMF_saturation.swf - ↓ 以下 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_saturation_991221 extends Sprite{ public var bmd:BitmapData = new MyPhoto(0,0); public var bm:Bitmap = new Bitmap(bmd); public function ColorMF_saturation_991221() { addChild(bm); var matrix:Array = new Array(); matrix = matrix.concat([2, -1, 0, 0, 0]); //RED Channel matrix = matrix.concat([-1, 2, 0, 0, 0]); //GREEN Channel matrix = matrix.concat([0, -1, 2, 0, 0]); //BLUE Channel matrix = matrix.concat([0, 0, 0, 1, 0]); //ALPHA Channel var myFilter:ColorMatrixFilter = new ColorMatrixFilter(matrix); bm.filters = [myFilter]; } } }
參考此篇處理方式:Matrix Operations for Image Processing - Paul Haeberli
991221_ColorMF_saturation2.swf
● s = 1 ← 點陣圖為原值
991221_ColorMF_saturation2a.swf
● s = 1.8 或 大於1 ← 點陣圖色彩飽合度增加
991221_ColorMF_saturation2b.swf
● s = 0 ← 點陣圖變成灰階
991221_ColorMF_saturation2c.swf
● s = 0 ← 點陣圖變成互補色
package { import flash.display.Sprite; import flash.filters.ColorMatrixFilter; import flash.display.BitmapData; import flash.display.Bitmap; import flash.display.DisplayObject; // public class ColorMF_saturation2_991221 extends Sprite{ public var bmd:BitmapData = new MyPhoto(0,0); public var bm:Bitmap = new Bitmap(bmd); public function ColorMF_saturation2_991221() { addChild(bm); // var rwgt:Number = 0.3086; var gwgt:Number = 0.6094; var bwgt:Number = 0.0802; // var s:Number = 1; // var a:Number = (1.0-s)*rwgt + s; var b:Number = (1.0-s)*gwgt; var c:Number = (1.0-s)*bwgt; var d:Number = (1.0-s)*rwgt; var e:Number = (1.0-s)*gwgt + s; var f:Number = (1.0-s)*bwgt; var g:Number = (1.0-s)*rwgt; var h:Number = (1.0-s)*gwgt; var i:Number = (1.0-s)*bwgt + s; // var matrix:Array = new Array(); matrix = matrix.concat([a, b, c, 0, 0]); //RED Channel matrix = matrix.concat([d, e, f, 0, 0]); //GREEN Channel matrix = matrix.concat([g, h, i, 0, 0]); //BLUE Channel matrix = matrix.concat([0, 0, 0, 1, 0]); //ALPHA Channel var myFilter:ColorMatrixFilter = new ColorMatrixFilter(matrix); bm.filters = [myFilter]; } } }
沒有留言:
張貼留言