2010-02-21 70 views

回答

6

有关于如何做到这一点四处撒网完整的报道,像这些应该让你去:

+1

实际上我是在谈论文件大小(3mb - > 200 kb),而不是图像的尺寸。它也覆盖他们吗? – Anand 2010-12-15 11:34:25

+0

@Anand你找到解决方案吗? – 2016-08-17 07:04:41

5

你可以用” t很容易将图像从一个文件大小调整到另一个文件大小,但大多数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推荐增量扩展你给你最好看的结果。

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