ImageIO读取是否意味着抗锯齿缩放?

时间:2009-12-17 14:26:45

标签: java antialiasing image-scaling javax.imageio

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

现在的问题是,区别在哪里?哪个属性导致图像缩放消除锯齿?我一直以为反别名键只取决于我画的图形 - 但这显然是错误的。

顺便说一句:遗憾的是我不能改变渲染器。

2 个答案:

答案 0 :(得分:2)

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

你可以尝试摆弄的是你在发布g.drawImage之前的Graphics2D上下文的渲染提示。

http://bit.ly/7b6lvg< - 有关Graphics2D.setRenderingHint的Java Sun文档

答案 1 :(得分:0)

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