Java-用于调整图像大小的良好且免费的库

Java-用于调整图像大小的良好且免费的库,java,image-resizing,graphics2d,Java,Image Resizing,Graphics2d,我想在java中调整图像的大小 到目前为止,我使用的是: BufferedImage resizedImage = new BufferedImage((int) new_dim.getWidth(), (int) new_dim.getHeight(), type); Graphics2D g = resizedImage.createGraphics(); g.drawImage(originalImage, 0, 0, (int) new_dim.getWidth(), (int) new

我想在java中调整图像的大小

到目前为止,我使用的是:

BufferedImage resizedImage = new BufferedImage((int) new_dim.getWidth(), (int) new_dim.getHeight(), type);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, (int) new_dim.getWidth(), (int) new_dim.getHeight(), null);
g.dispose();
newDim是一个维度

但是结果质量很差


有没有一些免费的商业图书馆可以做这个简单的工作?

你应该试试imgscalr:

是一个开源(MIT许可证)库,专门用于图像大小调整操作,尤其是在缩小图像时

例如,以下内容将调整
缓冲区图像的大小:

BufferedImage sourceImage = // ...
BufferedImage resizedImage = 
    Thumbnails.of(sourceImage)
        .size(newWidth, newHeight)
        .asBufferedImage();
Thumbnailator提供灵活的输入和输出,因此可以混合和匹配
文件
缓冲图像
输入和输出:

BufferedImage sourceImage = // ...
Thumbnails.of(sourceImage)
    .size(newWidth, newHeight)
    .toFile(destinationFile);

该库使用各种技术来提高已调整大小的图像的质量,并在保持速度和质量之间的良好平衡的同时做到这一点。Thumbnailator项目页面具有一个

免责声明:我是该库的维护者

试图说服您重新考虑,至少是质量问题

您可以尝试使用
g.setRenderingHints(键插值、值插值双三次)请参阅


还有用于锐化等的图像过滤器。

谢谢你的回答,但我在调整动画GIF大小时遇到了这个问题:我还不得不放弃这个库,因为它在透明GIF上有问题。链接不起作用anymore@pstobiecki谢谢,修好了。
File sourceFile = // ...
BufferedImage resizedImage = 
    Thumbnails.of(sourceFile)
        .size(newWidth, newHeight)
        .asBufferedImage();