如何在Java中将原始图像大小调整为通用大小的图像?

2022-09-02 04:10:41

在Java中,如何将图像大小调整为任何类型或大小的图像的默认大小?


答案 1

您无法轻松地将图像大小从一种文件大小调整为另一种文件大小,但是,大多数JPG / PNG / GIF / etc.根据其分辨率往往具有相似的文件大小。例如,200kb 的压缩 JPG 通常可以说大小为 1280x960。如果是这种情况,您只需将所有调整大小操作作为目标图像大小调整为该大小的目标,并大致获得所需的大小约束。

一个非常简单的方法是使用非常简单的java图像大小调整库(Apache 2许可证),它可以为您完成所有正确的工作。调整大小的示例代码如下所示:

BufferedImage img = ImageIO.read(...); // load image
BufferedImage scaledImg = Scalr.resize(img, 1280, 960);

您的图像比例是尊重的,库根据缩放(最快,平衡或质量)导致的图像变化量对它应该使用的方法进行最佳猜测,并且始终使用最佳支持的Java2D图像类型进行缩放以避免“黑色”结果或真正可怕的输出(例如,过度抖动的GIF图像)的问题。

此外,如果你想强制它输出Java中最好看的结果,API调用将如下所示:

BufferedImage img = ImageIO.read(...); // load image
BufferedImage scaledImg = Scalr.resize(img, Method.QUALITY, 1280, 960);

该库使用 Java2D 推荐的增量缩放,以便为您提供最佳效果。

您可以通读库中的所有注释(代码本身被大量文档化),以查看解决的所有不同的JDK错误或为提高性能或内存使用率而进行的优化。我花了很多时间来调整这个实现,并从在Web应用程序和其他Java项目中部署它的人那里得到了很多很好的反馈。


答案 2

网上有关于如何做到这一点的完整文章,像这样的东西应该让你去:


推荐