Flex图像编程技巧 3:图像滤镜
var filter : BlurFilter = new BlurFilter();
filter.blurX = blurX.value;
filter.blurY = blurY.value;
filter.quality = quality.value;
image.filters = [ filter ]
另一个简单的以及我非常喜爱的滤镜就是阴影滤镜,使用这个类你可以为任何东西添加阴影。简单易用,功能强大。
var filter : DropShadowFilter = new DropShadowFilter();
filter.blurX = blurX.value;
filter.blurY = blurY.value;
filter.quality = quality.value;
filter.alpha = _alpha.value;
filter.angle = angle.value;
filter.color = color.selectedColor;
filter.distance = distance.value;
filter.inner = inner.selected;
image.filters = [ filter ];
这儿还有一些拉伸和发光的例子,代码和上面的基本一致,我就不贴出来了,你只需要创建一个滤镜的实例,然后将对象的滤镜数组添加相应的滤镜
使用 ColorMatrixFilter ,你同样也可以加强或者改变你图像的颜色(也包括其他的所有显示对象),本例中仅适用此技术来改变现实对象的像素的颜色,当然你也可以使用该技术来添加或者去除显示颜色,增加艾对比度。这是图像处理的非常强大的工具
var filter : ColorMatrixFilter = new ColorMatrixFilter();
var matrix:Array = new Array();
matrix = matrix.concat([r.value, 0, 0, 0, 0]); // red
matrix = matrix.concat([0, g.value, 0, 0, 0]); // green
matrix = matrix.concat([0, 0, b.value, 0, 0]); // blue
matrix = matrix.concat([0, 0, 0, _alpha.value, 0]); // alpha
filter.matrix = matrix;
image.filters = [ filter ];
当你把这些滤镜组合起来使用的时候,你就能够体会到滤镜的强大之处了,正如上面所提到的滤镜可以作为滤镜数组参数的一部分应用到一定的对象,可以使用的滤镜的数量是没有明确的限制的,当然你要记住,你使用的滤镜越多,你耗费的 CPU 时间就越多,下面是如何将这些滤镜组合起来的一个例子
var b : BlurFilter = new BlurFilter();
var d : DropShadowFilter = new DropShadowFilter( 15 );
var g : GlowFilter = new GlowFilter( 0xFF0000, 1, 5, 5, 2, 1, true );
image.filters = [ b, d, g ]
你可以从下面的网址获得前面的所有教程
http://www.cynergysystems.com/blogs/blogs/andrew.trice/filters/filters.html
可以从下面的网址获得教程的所有源代码
http://www.cynergysystems.com/blogs/blogs/andrew.trice/filters/srcview/



已有