Actionscript 3 错误#2077:无法使用指定的输入参数执行此筛选操作
我试图通过Actionscript 3 错误#2077:无法使用指定的输入参数执行此筛选操作,actionscript-3,flash,bitmapdata,Actionscript 3,Flash,Bitmapdata,我试图通过将位图过滤器(特别是内部DropShadowFilter)应用于位图数据。applyFilter 我以前从未看到过这条消息,谷歌也没有立即回答这个问题,我看到有人对为什么它应用于JPEG而不是PNG图像感到困惑。所以希望这个问题能帮助其他人。我将在下面介绍我的简单解决方案。通过阅读,问题很明显。我尝试对没有透明度的位图数据应用DropShadowFilter(又名,没有alpha通道,每像素仅24位)。文档说明哪些过滤器需要透明度(为了方便起见,在此处复制): 每种类型的过滤器都有一定
将位图过滤器
(特别是内部DropShadowFilter
)应用于位图数据
。applyFilter
我以前从未看到过这条消息,谷歌也没有立即回答这个问题,我看到有人对为什么它应用于JPEG而不是PNG图像感到困惑。所以希望这个问题能帮助其他人。我将在下面介绍我的简单解决方案。通过阅读,问题很明显。我尝试对没有透明度的位图数据应用DropShadowFilter(又名,没有alpha通道,每像素仅24位)。文档说明哪些过滤器需要透明度(为了方便起见,在此处复制):
每种类型的过滤器都有一定的要求,如下所示:
- 模糊过滤器-此过滤器可以使用不透明或透明的源图像和目标图像。如果图像的格式不匹配,则在过滤过程中制作的源图像副本与目标图像的格式匹配
- BevelFilter、DropShadowFilter、GlowFilter、ChromeFilter这些过滤器的目标图像必须是透明图像。调用DropShadowFilter或GlowFilter将创建包含DropShadow或glow的alpha通道数据的图像。它不会在目标图像上创建阴影。如果将这些过滤器中的任何一个用于不透明的目标图像,则会引发异常
- 卷积过滤器-此过滤器可以使用不透明或透明的源图像和目标图像
- ColorMatrixFilter-此过滤器可以使用不透明或透明的源图像和目标图像
- DisplacementMapFilter-此过滤器可以使用不透明或透明的源图像和目标图像,但源图像和目标图像格式必须相同
BitmapData
很容易-这是构造函数的第三个参数:
Error #2077: This filter operation cannot be performed with the specified input parameters.
at flash.display::BitmapData/applyFilter()
请注意,创建透明位图数据时,必须为默认颜色指定32位整数(第4个参数)。如果只指定0xffffff(24位白色),则会得到一个空白图像,因为alpha值(最高8位)为0
// args are: width, height, is_transparent, default_color
var bd:BitmapData = new BitmapData(1024, 768, true, 0xff000000);