【发布时间】:2014-09-12 08:25:17
【问题描述】:
我有一组缓冲图像,我想对其进行序列化然后反序列化。 例如,我有一个充满缓冲图像的数组列表,这些图像被迭代并写入 对象输出流
for (BufferedImages i : images{
ImageIO.write(i,"png",ImageIO.createImageOutputStream(output));
}
当我去重新序列化图像时,我尝试使用
BufferedImage image =ImageIO.read(ImageIO.createImageInputStream(input));
但它只读取一张图片。
重新序列化存储在同一个序列化文件中的缓冲图像集合的正确方法是什么?
此外,一旦图像被重新序列化,它们就会被重绘为 JLabel, 我如何知道哪个图像是每个 JLabel 的正确图像?
【问题讨论】:
-
据我所知(可能并不多:P),我认为您尝试做的事情是不可能的。我不认为 PNG 有子图像的概念,即使有,你编写图像的方式也不会产生你想要的效果。本质上,您正在将“页眉/图像数据/页脚”写入文件。
ImageIO正在读取“页眉/图像数据/页脚”,就是这样,因为该图像格式是如何工作的。 -
如需尽快获得更好的帮助,请发帖SSCCE。
标签: java bufferedimage javax.imageio