【问题标题】:Does ImageIO read imply anti-aliased scaling?ImageIO 读取是否意味着抗锯齿缩放?
【发布时间】:2010-12-27 16:29:23
【问题描述】:

我已将 Java 内部 ImageFetcher 替换为使用 ImageIO 的自己的实现。我们软件的一些图像渲染器使用这些图像,现在绘制抗锯齿缩放图像而不是非抗锯齿图像。唯一的变化是图像的来源,现在是 BufferedImages 而不是 Toolkit-Images。

现在的问题是,区别在哪里?哪个属性导致图像缩放抗锯齿?我一直认为抗锯齿键只取决于我绘制的图形——但这显然是错误的。

顺便说一句:很遗憾,我无法更改渲染器。

【问题讨论】:

  • 您能否详细介绍一下图像渲染器运行的不同平台以及观察到的行为?这可能对发现正在发生的事情大有帮助。例如,Mac 的 Java2d 实现依赖于 Quartz 2d,这可能会导致 Sun 的实现发生重大变化。

标签: java antialiasing image-scaling javax.imageio


【解决方案1】:

好吧,毕竟有一个重要的区别:BufferedImages 是 RenderedImages,ToolkitImages 不是。这在某些情况下可能会导致不一致的行为,但一般来说似乎不是 Java 问题。

【讨论】:

    【解决方案2】:

    如果 ImageIO.read 进行任何抗锯齿处理,则可能是特定于平台的问题,正如 @Ichorus 指出的那样,因为 ImageIO.read 没有指定任何有关缩放或抗锯齿的预期行为。

    在发出 g.drawImage 或类似内容之前,您可以尝试摆弄的是您的 Graphics2D 上下文的渲染提示。

    http://bit.ly/7b6lvg

    【讨论】:

      猜你喜欢
      • 2021-02-12
      • 2012-08-06
      • 1970-01-01
      • 2014-02-18
      • 2012-12-13
      • 1970-01-01
      • 1970-01-01
      • 2016-06-28
      • 2011-07-05
      相关资源
      最近更新 更多