Java 序列化/反序列化缓冲图像

Java 序列化/反序列化缓冲图像,java,bufferedimage,javax.imageio,Java,Bufferedimage,Javax.imageio,我有一个缓冲图像的集合,我想序列化然后反序列化。 例如,我有一个arrayList,其中充满了缓冲图像,这些图像被迭代并写入到 ObjectOutputStream for (BufferedImages i : images{ ImageIO.write(i,"png",ImageIO.createImageOutputStream(output)); } 当我重新序列化图像时,我尝试使用 BufferedImage image =ImageIO.read(ImageIO.create

我有一个缓冲图像的集合,我想序列化然后反序列化。 例如,我有一个arrayList,其中充满了缓冲图像,这些图像被迭代并写入到 ObjectOutputStream

for (BufferedImages i : images{

ImageIO.write(i,"png",ImageIO.createImageOutputStream(output));

}
当我重新序列化图像时,我尝试使用

 BufferedImage image =ImageIO.read(ImageIO.createImageInputStream(input)); 
但它只能在一个图像中读取

重新序列化存储在同一序列化文件中的缓冲图像集合的正确方法是什么

此外,一旦图像被重新序列化,它们将被重新绘制为JLabel,
如何知道每个JLabel的正确图像?

编辑:问题已解决

最终将缓冲后的图像转换成字节数组,然后将它们放入哈希映射中,并使用一些哈希代码作为键。 然后序列化哈希映射。
很好。

据我所知(可能不多:p),我不认为你想做的是可能的。我不认为PNG有子图像的概念,即使它有,你写图像的方式也不会产生你想要的效果。实际上,您正在将“页眉/图像数据/页脚”写入文件
ImageIO
正在读取“页眉/图像数据/页脚”,这就是图像格式的工作原理。要更快获得更好的帮助,请发布一个。提前感谢。。!!!您是否可以为此提供函数或任何API:将缓冲图像转换为字节数组,然后将它们粘贴在哈希映射中,并使用一些哈希代码作为键。然后序列化哈希映射。。。