如何在Flex中对图像进行反别名?

时间:2009-06-07 13:29:30

标签: flex image antialiasing

我有一个带有背景图像的Flex组件。图像在开始时很清晰,但每当我使用scaleX和scaleY缩放组件时都会出现锯齿状。我如何使图像抗锯齿,使其缩小到0.75,线条平滑,不会锯齿状?

Here is the image

Here is the scaled version

And the unscaled (good) one

2 个答案:

答案 0 :(得分:6)

如果使用Image组件加载图像,则可以将组件的content属性强制转换为Bitmap,然后将平滑设置为true。不幸的是,图像组件不提供开箱即用的功能。然而,它很容易入侵。

这是一个教程,向您展示如何创建这样的组件: http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=2&postId=4001

但是,如果使用组件的backgroundImage样式进行设置,除非您覆盖updateDisplayList并使用Graphics.beginBitmapFill(它确实提供平滑支持)自行绘制位图,否则您可能会失败。 / p>

为什么平滑图像在Flex(以及后来的Flash)中没有更好的支持(例如不同的插值方法)令人难以置信。至少像素弯曲滤波器会让我们自己实现这样的滤波器。

答案 1 :(得分:0)

如果Bitmap的尺寸都是n ^ 2或n ^ 8,则Flash播放器将自动使用一种称为mip-mapping的技术,该技术将显着改善缩放位图图像的外观(和性能)。