【问题标题】:Serializing/Deserializing buffered images序列化/反序列化缓冲图像
【发布时间】: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


【解决方案1】:

编辑:问题已解决

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

【讨论】:

  • 提前谢谢..!!!您能否为此提供函数或任何 API:将缓冲的图像转换为字节数组,然后将它们放入哈希映射中并使用一些哈希码作为键。然后序列化hash map...
猜你喜欢
  • 2017-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 2010-10-15
相关资源
最近更新 更多