2010-11-21 267 views
0

我正在用Java编写一个工具来处理我网站上传的文件。我想以特定的方式管理图片:如果尺寸大于限制,我想首先调整图片大小,然后再检查尺寸。当然,我不想做无用的工作,所以我想在重新制作它之前估计图像的大小。目前,我使用BufferedImage将图像存储在内存中,但我找不到解决方法。 无论如何,你能帮我找到解决这个问题的正确方法吗?Java BufferedImage分辨率

我的问题是提前知道调整大小的图像的字节大小。如果最终字节大小仍超过工具用户设置的限制,我不想进行大小调整。

回答

0

大小?大小的像素(应该是一些简单的数学)或字节?对于后者,创建一个ByteArrayOutputStream并将其用作传递给ImageIO.write()的OutputStream。大小将是(类似于)baos.toByteArray()。length。

我猜你打算在客户端做所有这些调整大小,因为上传之后做这件事情没什么意义。

+0

我的问题是提前知道调整大小的图像的字节大小。如果最终字节大小仍超过工具用户设置的限制,我不想进行大小调整。 – 2010-11-21 15:29:49

0

是否想知道之前的尺寸是否将其放入缓冲图像中?否则,您可能会在缓存的图像上使用getWidth()和getHeight(),并根据它们的大小来执行调整大小。设置一个PREFERRED_SIZE常量,并根据图像相对于它的大小调整大小。你应该只需要执行一次调整。

0
+0

高度宽度和分辨率有差异。 – dharmendra 2013-02-28 07:04:08

+0

取决于你的决议意思。这里,我的意思是像素分辨率http://en.wikipedia.org/wiki/Image_resolution#Pixel_resolution – 2013-02-28 09:54:14