我使用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();
是否可以在不引入伪像的情况下缩放图像?
答案 0 :(得分:1)
一般来说,位图图形不能很好地扩展。当您增加图像的大小时,降级尤其值得注意,但即使按比例缩小也会引入不希望的伪像,尤其是在不按整数因子缩放的情况下。
如果您需要多个尺寸的单个图像进行显示,最佳解决方案是使用矢量*图形或获取您拥有的最高保真度位图并缩小尺寸,并使用积分因子。
*请注意,矢量图形不是照片等的选项。
答案 1 :(得分:0)
这个article by Chris Campbell有很多关于使用Java2D缩放图像的详细信息。
关于缩放质量,您可以使用许多选项,通常质量越好,缩放所需的时间越长(性能与质量权衡)。
文章中的信息可能会帮助您缩放看起来更好,但正如@Kevin在他的回答中所说,在一天结束时,没有任何缩放将是绝对完美的。
答案 2 :(得分:0)
您可以查看java-image-scaling库。通过快速测试,它创建了比使用标准Java2D / AWT工具更好的缩小图像质量。