【发布时间】:2011-01-19 07:48:45
【问题描述】:
在 Java 中,如何将图像调整为任何类型或大小的图像的默认大小?
【问题讨论】:
在 Java 中,如何将图像调整为任何类型或大小的图像的默认大小?
【问题讨论】:
您无法轻松地将图像从一种文件大小调整为另一种文件大小,但是,大多数 JPG/PNG/GIF/等。往往根据其分辨率具有相似的文件大小。例如,200kb 压缩 JPG 的大小通常可能为 1280x960。如果是这种情况,您只需将所有调整大小操作作为目标,将目标图像的大小调整为该大小,并大致获得您想要的大小限制。
一个非常简单的方法是使用非常简单的 java image resizing library(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 推荐的增量缩放为您提供最佳外观。
您可以通读库中的所有 cmets(代码本身被大量文档化)以查看所有已解决的不同 JDK 错误或为提高性能或内存使用而进行的优化。我花了很多时间调整这个实现,并且从将它部署到 Web 应用程序和其他 Java 项目中的人们那里得到了很多很好的反馈。
【讨论】:
网上有关于如何做到这一点的完整文章,这些内容应该可以帮助您:
【讨论】: