Java估算出BufferedImage的文件大小的方法

2022-08-14 1268点热度 0人点赞 0条评论

需求说明

Java使用BufferedImage处理图片的时候,想实时知道处理后的图片占用的文件的大小。

实现

比较传统的做法是先把BufferedImage存成文件,然后读取文件的bytes大小。不过这种做法显然有点迂回。下面是我使用的计算图片大小的方法,思路是先把BufferedImage转成图片字节流到ByteArrayOutputStream,然后计算ByteArrayOutputStream的字节数,这样就不用经过再保存文件到磁盘再读取的过程了。

代码如下:

// bufferedImage 之前的处理代码忽略
// BufferedImage bufferedImage = ...
ByteArrayOutputStream tmp = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "jpg", tmp);
tmp.close();
byte[] bytes = tmp.toByteArray();
System.out.println("文件大小: " + (bytes.length/1024.0) + " KB");

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论