小编tud*_*lus的帖子

序列化包含 BufferedImages 的对象

正如标题所暗示的那样,我试图将一个包含(以及其他变量、字符串等)一些 BufferedImage 的对象保存到文件中。

我发现了这个: 如何序列化一个包含 BufferedImages 的对象

它就像一个魅力,但有一个小小的挫折:如果你的对象只包含一个图像,它会很好地工作。

我一直在努力让他的解决方案处理多个图像(理论上应该可行)但是每次我读入文件时,我都会取回我的对象​​,我得到正确数量的图像,但只有第一个图像实际上被读入;其他只是空图像,其中没有数据。

这是我的对象的样子:

 class Obj implements Serializable
    {
transient List<BufferedImage> imageSelection= new ArrayList<BufferedImage>();
     // ... other vars and functions

private void writeObject(ObjectOutputStream out) throws IOException {
        out.defaultWriteObject();
        out.writeInt(imageSelection.size()); // how many images are serialized?
        for (BufferedImage eachImage : imageSelection) {
            ImageIO.write(eachImage, "jpg", out); // png is lossless
        }
    }

 private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
        in.defaultReadObject();
        final int imageCount = in.readInt();
        imageSelection = new ArrayList<BufferedImage>(imageCount);
        for (int i=0; i<imageCount; i++) { …
Run Code Online (Sandbox Code Playgroud)

java bufferedimage file

2
推荐指数
1
解决办法
2131
查看次数

标签 统计

bufferedimage ×1

file ×1

java ×1