我正在用 Java 编写一个工具来处理我网站上上传的文件。我想以特定的方式管理图像:如果尺寸大于限制,我想首先调整图像的尺寸,然后再次检查尺寸。当然,我不想做无用的工作,所以我想在调整图像大小之前估计图像的大小。目前,我使用 BufferedImage 将图像存储在内存中,但我找不到知道分辨率的方法。 无论如何,你能帮我找到解决这个问题的正确方法吗?
我的问题是提前知道调整大小的图像的大小(以字节为单位)。如果最终字节大小仍然超过工具用户设置的限制,我不想调整大小。
最佳答案
尺寸?大小以像素为单位(应该是一些简单的数学)或字节?对于后者,创建一个 ByteArrayOutputStream 并将其用作传递给 ImageIO.write() 的 OutputStream。大小将是(类似于)baos.toByteArray().length。
我猜您打算在客户端进行所有这些调整大小的操作,因为在上传后执行此操作没有什么意义。
关于Java BufferedImage 分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4238576/