【问题标题】:Resized image degrades in quality调整大小的图像质量下降
【发布时间】:2011-01-24 09:18:36
【问题描述】:

我使用 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();

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

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      一般来说,位图图形不能很好地缩放。当您增加图像的大小时,退化尤其明显,但即使按比例缩小也会引入不希望的伪影,尤其是在不按整数因子缩放的情况下。

      如果您需要多个尺寸的单个图像进行显示,最好的解决方案是使用矢量图形采用您拥有的最高保真度位图并按整数倍缩小。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-12
        • 2014-02-17
        • 2021-02-15
        相关资源
        最近更新 更多