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

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

有关于如何在网络上执行此操作的完整文章,类似这些应该让你去:

  • 终极Java图像处理 (包括许多其他图像function)

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

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

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

你的图像比例很受尊重,图书馆会根据图像因缩放(FASTEST,BALANCED或QUALITY)引起的变化量对其应该使用的方法进行最佳猜测,并且最常支持的Java2D图像类型总是被用来做缩放以避免出现“黑色”结果或看起来非常糟糕的输出(例如过度抖动的GIF图像)。

此外,如果要强制它在Java中输出可能的最佳结果,API调用将如下所示:

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

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

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