[ActionScript 3.0] AS3 ConvolutionFilter卷积滤镜的应用
ConvolutionFilter 类应用矩阵盘绕滤镜效果。卷积将输入图像的像素与相邻的像素合并以生成图像。通过卷积,可以实现大量的图像效果,包括模糊、边缘检测、锐化、浮雕和斜角。您可以将滤镜应用于任何显示对象(即,从 DisplayObject 类继承的对象),例如 MovieClip、SimpleButton、TextField 和 Video 对象,以及 BitmapData 对象。
要创建卷积滤镜,请使用语法 new ConvolutionFilter()
。滤镜的具体使用取决于要应用滤镜的对象:
- 要对影片剪辑、文本字段、按钮和视频应用滤镜,请使用
filters
属性(继承自 DisplayObject)。设置对象的filters
属性不会修改相应的对象,而清除filters
属性可以删除相应的滤镜。 - 要对 BitmapData 对象应用滤镜,请使用
BitmapData.applyFilter()
方法。对 BitmapData 对象调用applyFilter()
会取得源 BitmapData 对象和滤镜对象,并最终生成一个过滤图像。
如果对显示对象应用滤镜,则该对象的 cacheAsBitmap
属性值将设置为 true
。如果清除所有滤镜,将恢复 cacheAsBitmap
的原始值。
如果所得图像超过最大尺寸,则不应用滤镜。在 AIR 1.5 和 Flash Player 10 中,最大宽度或高度为 8,191 像素,并且像素总数不能超过 16,777,215 像素。(因此,如果图像的宽度为 8,191 像素,则其高度只能为 2,048 像素。)在 Flash Player 9 及早期版本和 AIR 1.1 及早期版本中,高度最大为 2,880 像素,宽度最大为 2,880 像素。例如,如果在放大某大型影片剪辑时应用了滤镜,则所得图像超过最大尺寸时,将关闭该滤镜。
package
{
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.filters.BitmapFilter;
import flash.filters.ConvolutionFilter;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.text.TextFieldAutoSize; /**
* @author Frost.Yen
* @E-mail 871979853@qq.com
* @create 2015-9-16 下午2:05:36
*
*/
public class ConvolutionFilterTest extends Sprite
{
private var size:uint = 140;
private var url:String = "ConvolutionFilter.png"; public function ConvolutionFilterTest()
{
buildChild(applyNothing);
buildChild(applyBrightness);
buildChild(applySharpness);
buildChild(applyOutline); }
private function buildChild(loadHandler:Function):void {
var loader:Loader = new Loader();
loader.x = numChildren * size;
loader.y = size;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
if(loadHandler != null) {
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadHandler);
} var request:URLRequest = new URLRequest(url);
loader.load(request);
addChild(loader);
} private function applyNothing(event:Event):void {
var child:DisplayObject = DisplayObject(event.target.loader);
applyLabel(child, "no filter");
} private function applyBrightness(event:Event):void {
var child:DisplayObject = DisplayObject(event.target.loader);
var matrix:Array = [5, 5, 5,
5, 0, 5,
5, 5, 5];
applyFilter(child, matrix);
applyLabel(child, "brightness");
} private function applySharpness(event:Event):void {
var child:DisplayObject = DisplayObject(event.target.loader);
var matrix:Array = [0, -1, 0,
-1, 20, -1,
0, -1, 0];
applyFilter(child, matrix);
applyLabel(child, "sharpness");
} private function applyOutline(event:Event):void {
var child:DisplayObject = DisplayObject(event.target.loader);
var matrix:Array = [-30, 30, 0,
-30, 30, 0,
-30, 30, 0];
applyFilter(child, matrix);
applyLabel(child, "outline");
} private function applyFilter(child:DisplayObject, matrix:Array):void {
var matrixX:Number = 3;
var matrixY:Number = 3;
var divisor:Number = 9;
var filter:BitmapFilter = new ConvolutionFilter(matrixX, matrixY, matrix, divisor);
var filters:Array = new Array();
filters.push(filter);
child.filters = filters;
} private function applyLabel(child:DisplayObject, label:String):void {
var tf:TextField = new TextField();
tf.x = child.x;
tf.y = child.height;
tf.autoSize = TextFieldAutoSize.LEFT;
tf.text = label;
addChild(tf);
} private function ioErrorHandler(event:IOErrorEvent):void {
trace("Unable to load image: " + url);
} }
}
[ActionScript 3.0] AS3 ConvolutionFilter卷积滤镜的应用的更多相关文章
- [ActionScript 3.0] as3处理xml的功能和遍历节点
as3比as2处理xml的功能增强了N倍,获取或遍历节点非常之方便,类似于json对像的处理方式. XML 的一个强大功能是它能够通过文本字符的线性字符串提供复杂的嵌套数据.将数据加载到 XML 对象 ...
- [ActionScript 3.0] AS3.0 动态加载显示内容
可以将下列任何外部显示资源加载到 ActionScript 3.0 应用程序中: 在 ActionScript 3.0 中创作的 SWF 文件 — 此文件可以是 Sprite.MovieClip 或扩 ...
- [ActionScript 3.0] AS3实现滤镜叠加效果
import flash.display.BitmapData; import flash.filters.BlurFilter; import flash.geom.ColorTransform; ...
- [ActionScript 3.0] AS3动画类Tweener中滤镜的运用
package { import caurina.transitions.Tweener; import caurina.transitions.properties.FilterShortcuts; ...
- [ActionScript 3.0] AS3.0和AS2.0的相互通信
AS3和AS2之间的通信,最好的方式可能就是LocalConnection了. AS2向AS3发送数据,即AS2调用AS3的函数: as2.0代码(按钮上写的发送信息代码): on (release) ...
- [ActionScript 3.0] AS3.0 本机鼠标指针
Flash Player 10.2添加了内置的本机鼠标指针(native mouse cursor)支持,虽然在之前的版本里我们可以侦听MouseEvent事件来模拟鼠标指针,但是在有了原生的本机鼠标 ...
- [ActionScript 3.0] AS3 深入理解Flash的安全沙箱Security Domains
简介 如果你还没有与复杂的的安全域(security domain)和应用程序域(application domain)问题打过交道,那么你真是个幸运的家伙.当你在加载外部内容(然后他们开始播放)的时 ...
- [ActionScript 3.0] AS3 深入理解Flash的 应用程序域Application Domains
简介 网上有很多flash,通常都不需要显示的使用应用程序域,因为默认的应用程序域就够用了.其实复杂的情况下需要用到应用程序域,比如说有两个不同的swf,一个是旧版本的,一个是新版的,这两个文件里的类 ...
- [ActionScript 3.0] AS3调用百度天气预报查询API
接口说明 根据经纬度/城市名查询天气的结果 接口示例 http://api.map.baidu.com/telematics/v3/weather?location=成都&output=jso ...
随机推荐
- IIS调用COM组件的权限问题
在DCOM组件服务中给MICROSOFT.EXCEL组件 赋予ASP.NET的操作权限,具体步骤: (1)打开开始菜单的运行对话框,输入dcomcnfg命令,确定,这时会弹出组件服务窗口 (2)展开计 ...
- axure变量的使用
1.什么是变量? 变量在数学中的定义是可以改变的数,在计算机编程中,它是在内存中开辟的一块空间用于存储临时 数据.Axure中的变量和计算机编程中一样,它是一个用于存储临时数据的容器. 2.变量的创建 ...
- SELECT INTO 和 INSERT INTO SELECT 两种表复制语句.txt
Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少.但我 ...
- Android 6.0删除Apache HttpClient相关类的解决方法
相应的官方文档如下: 上面文档的大致意思是,在Android 6.0(API 23)中,Google已经移除了Apache HttpClient相关的类,推荐使用HttpUrlConnection. ...
- javascript取得机器名,用户名,读写注册表,启动应用程序
javascript取得机器名,用户名,读写注册表,启动应用程序//javascript有个特殊的对象ActiveXObject,通过它可以访问windows的本地文件系统和应用程序,比如:有的时候我 ...
- 【jmeter】WebSerivice测试
WebSerivice测试计划的取样器有两种方式:HTTP请求.SOAP/XML-RPC Request. 1. 测试计划 启动JMeter,点击测试计划节点上,重命名测试计划:WebserviceT ...
- 【python】浅谈包
python中的包可以理解为模块的集合.每个包也既可以为单包也可以有多个小包组成. Python中的package定义很简单,其层次结构与目录的层次结构相同,但是每个package必须包含一个__in ...
- C++ Socket编程步骤 【转】
sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW):基于TCP的socket编程是采用的流式套接字. 服务器 ...
- [转]开源那些事儿(四)-如何使用CodePlex进行项目管理
本文版权信息作者:Jake Lin(Jake's Blog on 博客园) 出处:http://www.cnblogs.com/procoder/archive/2010/02/10/About-Op ...
- matlab 画三维图函数
matlab三维绘图 http://blog.sina.com.cn/s/blog_6d5ffd0d0100lyah.html Matlab绘图系列之高级绘图 http://blog.163.com/ ...