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

调整大小后的图像质量下降

  •  0
  • Venkat  · 技术社区  · 14 年前

    我使用java2d图形类调整了图像的大小。但看起来不对。

        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 回复  |  直到 14 年前
        1
  •  1
  •   Kevin Montrose    14 年前

    一般来说,位图图形的缩放效果不好。当增大图像的大小时,退化尤其明显,但即使缩小也会引入不需要的伪影,特别是如果不按积分因子缩放的话。

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

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

        2
  •  0
  •   Ash    14 年前

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

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

    文章中的信息可能会帮助你的缩放效果更好,但是正如@kevin在他的回答中所说,最终没有一个缩放是绝对完美的。

        3
  •  0
  •   Juha Syrjälä    14 年前

    你可以调查一下 java-image-scaling 图书馆。通过快速测试,它创建了比使用标准java2d/awt工具更好的质量缩小图像。