apache-flex - 将模糊滤镜应用于 BitmapData

标签 apache-flex actionscript-3 bitmapdata

这是我用来使用 BitmapData 模糊图像的代码。在 Slider_changeHandler(event:Event):void 事件上调用该函数,并将 slider 的值作为模糊值传递给该函数。

问题是该函数可以工作,但似乎是累积的(如果这是正确的词!),也就是说,假设我将其滑动到最大值,然后尝试通过将其滑回模糊前面来减少模糊仍在不断增加。我如何使其工作,以便当我向上滑动时模糊会增加,当我向后滑动时模糊会减少,当 slider 为 0 时,不会应用模糊。

            var blur:BlurFilter = new BlurFilter();
            blur.blurX = blurvalue; 
            blur.blurY = blurvalue; 
            blur.quality = BitmapFilterQuality.MEDIUM;
            bitmapdata.applyFilter(bitmapdata,new
                Rectangle(0,0,bitmapdata.width,bitmapdata.height),new Point(0,0),
                blur);
            return bitmapdata;

最佳答案

返回应用了过滤器的原始 bitmapData 的克隆怎么样?

例如

var result:BitmapData = bitmapdata.clone();
var blur:BlurFilter = new BlurFilter();
blur.blurX = blurvalue; 
blur.blurY = blurvalue; 
blur.quality = BitmapFilterQuality.MEDIUM;
result.applyFilter(result,new
Rectangle(0,0,bitmapdata.width,bitmapdata.height),new Point(0,0),blur);
return result;

此外,如果您使用 BlurFilter,则可能需要更大的矩形,具体取决于模糊量。为此,您可以使用generateFilterRect()为过滤器获取正确大小的矩形的方法。

关于apache-flex - 将模糊滤镜应用于 BitmapData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6003706/

相关文章:

.net - 如何将一个 IntPtr 分配给另一个 IntPtr

apache-flex - 等待 Flash 播放器连接到调试器

java - 视频培训计划

apache-flex - 缺少 [mx.rpc]::IResponder

html - 是否有用于将 Flash/Flex AS3 TextLayoutFormat 数据转换为 HTML 和 CSS 的库?

actionscript-3 - HTML:如何从URL中间文件开始声音播放而又不将所有声音数据缓冲到该点

actionscript-3 - Starling - 将 SWF 图像(矢量)加载到图像中

arrays - 在 AS3 中使用值数组初始化 Vector 是否会部分违背 Vector 的目的?

c# - PixelFormat.Format32bppArgb 似乎有错误的字节顺序

flash - 如何准确绘制旋转位图?