应用滤镜-applyFilter

本文详细介绍了如何使用ActionScript中的BitmapData和滤镜对象,通过applyFilter方法实现实时图像模糊效果的创建过程。通过实例演示了如何在舞台中动态更新图像并应用模糊滤镜,提供了在Flash开发中处理图像动态变化的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 destBmp.applyFilter(sourceBitmapData, sourceRect, destPoint, filter);
·sourceBitmapData -- 要使用的输入位图图像。源图像可以是另一个BitmapData对象,也可以引用当前
BitmapData实例
·sourceRect -- 定义要用作输入的源图像区域的矩形
·destPoint -- 目标图像(当前BitmapData实例)中与源矩形的左上角对应的点
·filter -- 用于执行过滤操作的滤镜对象

如果 BitmapData 对象和指定为 sourceBitmapData 参数的对象是同一对象,应用程序将使用该对象的临时副本来执行滤镜。为了获得最佳性能,请避免这种情况可以直接定义Bitmap.filters属性,它不会直接接触BitmapData的像素数据,因为滤镜只应用在包装BitmapData的Bitmap上

package {   
    import flash.display.Bitmap;   
    import flash.display.BitmapData;   
    import flash.display.Sprite;   
    import flash.events.Event;   
    import flash.filters.BlurFilter;   
    import flash.geom.Point;   
  
    public class Sample0319 extends Sprite   
    {   
        private var image:Bitmap;   
        private var blurFilter:BlurFilter;   
        private var point:Point;   
           
        public function Sample0319()   
        {   
            image = new Bitmap();   
            image.bitmapData = new BitmapData(stage.stageWidth,stage.stageHeight,false,0x000000);   
            this.addChild(image);   
               
            blurFilter = new BlurFilter();   
            point = new Point();   
               
            this.addEventListener(Event.ENTER_FRAME,onEnterFrame);   
        }   
           
        private function onEnterFrame(target:Event):void   
        {   
            for(var i:uint=0;i<100;i++)   
            {   
                image.bitmapData.setPixel(mouseX + Math.random()*20 - 10,   
                              mouseY + Math.random()*20 - 10,   
                              0xFFFFFF);       
            }   
            image.bitmapData.applyFilter(image.bitmapData,image.bitmapData.rect,point,blurFilter);   
        }   
    }   
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值