代码之家  ›  专栏  ›  技术社区  ›  Aethex

如何在flex中消除图像的别名?

  •  1
  • Aethex  · 技术社区  · 17 年前

    我有一个带有背景图像的flex组件。图像一开始很清晰,但每当我使用scalex和scaley缩放组件时,就会出现锯齿状。如何使图像反别名,使其缩放到0.75,线条平滑,而不是锯齿状?

    Here is the image

    Here is the scaled version

    And the unscaled (good) one

    2 回复  |  直到 17 年前
        1
  •  6
  •   Marcus Stade Quentin    17 年前

    如果使用图像组件加载图像,可以将组件的Content属性转换为位图,然后将Smoothing设置为true。不幸的是,图像组件不能提供开箱即用的功能。然而,入侵是相当容易的。

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

    但是,如果使用组件的背景图像样式进行设置,则可能会走运,除非您重写UpdateDisplayList并使用graphics.beginBitmapFill自己执行位图的绘制(这确实提供了平滑支持)。

    为什么平滑图像在flex(以及flash)中没有更好的支持(例如不同的插值方法),这让我很困惑。至少PixelBender过滤器可以让我们自己实现这样的过滤器,这会有点帮助。

        2
  •  0
  •   Marc Hughes    17 年前

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

    推荐文章