as3学习笔记之ConvolutionFilter滤镜
来源:互联网 发布:零售进销存软件免费版 编辑:程序博客网 时间:2024/05/16 12:52
滤镜这个东西貌似很复杂,一时半会搞不明白,先记下搞明白的部分。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;
下面是代码:
//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滤镜
- AS3滤镜
- as3 滤镜
- AS3 高级动画教程学习之:等角投影笔记
- AS3学习笔记
- AS3学习笔记
- AS3学习笔记( 二)
- as3.0 学习笔记
- as3学习笔记
- AS3学习笔记
- AS3学习笔记
- AS3编程学习笔记
- as3学习笔记
- AS3学习笔记索引
- AS3学习笔记
- as3学习笔记
- as3学习笔记
- as3学习笔记
- 控件之DatePicker、TimePicker学习
- vc实现文件拖拽
- git学习 git操作进阶(分支,合并,查不同)
- 跟着别人学:用LFS从零构建linux
- __FILE__宏等
- as3学习笔记之ConvolutionFilter滤镜
- 关于参加ACM-ICPC的 ACMer的 个人训练问题
- SQL Server2005杂谈:公用表表达式(CTE)的递归调用
- Linux内核中常见内存分配函数介绍
- openfire 用户上线和离线
- QSettings、QApplication相关的 BUG 一例
- ContentProvider完整案例
- eclipse插件开发,RCP开发常识
- 为grid设置背景色(X5中)