【问题标题】:How to best serialize a java.awt.Image?如何最好地序列化 java.awt.Image?
【发布时间】:2010-09-13 11:46:27
【问题描述】:

我有一个 Serializable 对象,它应该将 java.awt.Image 作为其成员。我应该如何序列化它? (从不太清晰的第一个版本编辑,抱歉。)

【问题讨论】:

    标签: java image serialization


    【解决方案1】:

    ImageIcon 实现了 Serializable,它可以用来包装一个 Image 类

    http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/ImageIcon.html

    【讨论】:

    • 请注意:警告:此类的序列化对象将与未来的 Swing 版本不兼容。
    • 我尝试过....但出现错误....嵌套异常是:java.io.EOFException 请参阅我发布的问题...stackoverflow.com/questions/11117626/…
    • 虽然这个解决方案有效,但它似乎制作了非常大的序列化文件。一种解决方法是在磁盘上保持文件完整并保存参考,将图像复制到相对于序列化文件的位置。
    【解决方案2】:

    javax.swing.ImageIcon 作为 Swing 的一部分,不保证版本之间具有兼容的序列化形式。但是,您可以作弊并查看它的 readObject 和 writeObject 代码 - 找到宽度和高度,使用 PixelGrabber 抓取像素。我不完全确定正确地涵盖了颜色模型。显而易见的替代方法是使用 javax.imageio 编写一个真实的图像格式。

    【讨论】:

      【解决方案3】:

      据我所知没有。我相信您需要为其编写自己的序列化程序,以基本上保存宽度、高度和像素值......或者将其作为 PNG 或其他内容写入流中

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-27
        相关资源
        最近更新 更多