调整后的图像质量下降

时间:2010-03-06 05:21:23

标签: java graphics image-manipulation image-scaling java-2d

我使用Java2D Graphics类调整了图像大小。但看起来不对。

    BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, type);
    Graphics2D g = resizedImage.createGraphics();
    g.drawImage(originalImage, 0, 0, IMG_WIDTH, IMG_HEIGHT, null);
    g.dispose();

是否可以在不引入伪像的情况下缩放图像?

3 个答案:

答案 0 :(得分:1)

一般来说,位图图形不能很好地扩展。当您增加图像的大小时,降级尤其值得注意,但即使按比例缩小也会引入不希望的伪像,尤其是在不按整数因子缩放的情况下。

如果您需要多个尺寸的单个图像进行显示,最佳解决方案是使用矢量*图形获取您拥有的最高保真度位图并缩小尺寸,并使用积分因子。

*请注意,矢量图形不是照片等的选项。

答案 1 :(得分:0)

这个article by Chris Campbell有很多关于使用Java2D缩放图像的详细信息。

关于缩放质量,您可以使用许多选项,通常质量越好,缩放所需的时间越长(性能与质量权衡)。

文章中的信息可能会帮助您缩放看起来更好,但正如@Kevin在他的回答中所说,在一天结束时,没有任何缩放将是绝对完美的。

答案 2 :(得分:0)

您可以查看java-image-scaling库。通过快速测试,它创建了比使用标准Java2D / AWT工具更好的缩小图像质量。