【发布时间】:2015-03-26 08:49:48
【问题描述】:
所以我有一个名为square.png 的图像,大小约为 3.7 kB。我将其读入 BufferedImage 如下:
BufferedImage img = ImageIO.read("square.png");
此时我尝试将几个不同的对象写入磁盘。
ObjectOutputStream stream = new ObjectOutputStream(new FileOutputStream("square_out.data"));
我尝试了用 ImageIcon 包裹的图像:stream.writeObject(new ImageIcon(img));
我尝试了一个与图像像素尺寸(800x600)相同大小的二维数组。
我尝试将该数组包装在实现 Serializable 的自定义类中并编写它。
以上所有技术都生成了大小约为 1.9 MB 的square_out.data。考虑到原始图像只有几千字节,这是巨大的。这也很奇怪,因为每个人的大小完全相同。对此有任何合理的解释/是否有解决方法?我想存储很多这些,所以荒谬的文件大小很麻烦。
【问题讨论】:
-
我的帖子回答了你的问题吗?如果是这样,请考虑accepting 它,或者详细说明您所追求的。
标签: java image serialization filesize