CamLa -最强的flash摄像头- Report-2

发布时间:2007年03月15日      浏览次数:1409 次
Catastrophe!
由于效率问题,被迫把滤镜重新用面向对象的方法做了一遍。。。很想哭丫。。。
本来要开源的,现在害羞得都不敢拿出来show了。。。

但毕竟,用AS2.0写的滤镜终于完成了,有几个是上网抄袭的,呵呵。。。

这里就随便介绍几款滤镜的算法:
=================================================
MatrixFilter
功能:把图片转换成矩阵灰度。(很柔和,没有增强)
算法:主要是扩展ColorMatrixFilter,

var matrix:Array = new Array();
matrix = matrix.concat([1/3, 1/3, 1/3, 0, 0]);
matrix = matrix.concat([1/3, 1/3, 1/3, 0, 0]);
matrix = matrix.concat([1/3, 1/3, 1/3, 0, 0]);
matrix = matrix.concat([0, 0, 0, 1, 0]);

=================================================
BitFilter
功能:把图片转换成黑白两色。
算法:把图片转换成灰度>>过滤掉绿蓝通道(任意两个通道都行的)>>把红色通道减去0x88>>把红色通道放大>>转灰度>>完成
=================================================
BrightnessFilter
功能:改变亮度
算法:扩展ConvolutionFilter。。。把a[4]增强或降低就行了。。。

import flash.filters.ConvolutionFilter;
class d2.ex_filter.BrightnessFilter extends ConvolutionFilter
{
private var __level:Number;
function BrightnessFilter()
{
super(3, 3, [0, 0, 0, 0, 1, 0, 0, 0, 0], 1);
level = __level;
}
function set level(lev:Number):Void
{
__level = lev;
matrix = [0, 0, 0, 0, lev, 0, 0, 0, 0];
}
}
=================================================
ContrastFilter
功能:改变对比度
算法:利用colorTransform滤去亮色或者暗色>>放大所有通道

bit.colorTransform(bit.rectangle, new ColorTransform(1, 1, 1, 1, -_degree, -_degree,-_degree, 0));
bit.colorTransform(bit.rectangle, new ColorTransform(__level, __level, __level, 1, 0, 0,0, 0));

=================================================
DegradeFilter
功能:降低画质量
算法:降低再增高?^&^×()×…………)×^&^

bit.colorTransform(bit.rectangle, new ColorTransform(1/__level,1/__level,1/__level, 1, 0,0,0,0));
bit.colorTransform(bit.rectangle, new ColorTransform(__level, __level, __level, 1, 0,0,0,0));

=================================================
MosaicFilter
功能:马赛克效果
算法:尚无高效算法。。。通过循环填充实现。。。
=================================================
ReliefFilter
功能:浮雕效果
算法:扩展 ConvolutionFilter

不同方向:
matrix = [-n, 0, n, -n, 0, n, -n, 0, n];
matrix = [0, n, n, -n, 0, n, -n, -n, 0];
matrix = [n, n, n, 0, 0, 0, -n, -n, -n];
matrix = [n, n, 0, n, 0, -n, 0, -n, -n];
matrix = [n, 0, -n, n, 0, -n, n, 0, -n];
matrix = [0, -n, -n, n, 0, -n, n, n, 0];
matrix = [-n, -n, -n, 0, 0, 0, n, n, n];
matrix = [-n, -n, 0, -n, 0, n, 0, n, n];
=================================================
ReversesFilter
功能:反相
算法:扩展 ColorMatrixFilter

matrix=(-1, 0, 0, 0, 255,
0, -1, 0, 0, 255,
0, 0, -1, 0, 255,
0, 0, 0, 1, 0);

=================================================
SharpenFilter
功能:锐化
算法:扩展ConvolutionFilter

matrix = [a, a, a, a, b, a, a, a, a];
=================================================

当然,最重要的还是滤镜的组合啦。。。。。。。。。。。。。。。。
我懒,所以不想写太仔细-__,-
文章来源:http://dreamtorealities.spaces.live.com/blog/cns!49ffc3eb9e984200!382.entry
免责声明:本站相关技术文章信息部分来自网络,目的主要是传播更多信息,如果您认为本站的某些信息侵犯了您的版权,请与我们联系,我们会即时妥善的处理,谢谢合作!