gpt4 book ai didi

java - 如何将 ImageIcon 转换为字符串以存储在 JSON 中

转载 作者:行者123 更新时间:2023-11-30 06:32:38 32 4
gpt4 key购买 nike

您好,感谢您提前提供的帮助。

我正在开发角色扮演游戏角色构建器。每个角色都存储为 JSON 文件,我想包含角色图像。它被存储为 ImageIcon,但无法存储在 JSON 中。

如何将 ImageIcon 转换为字符串并再次转换回来?

这是我到目前为止所拥有的:

public ImageIcon getImageIcon() {
byte b[];
ByteArrayInputStream bi;
ObjectInputStream si;
ImageIcon image = null;

try {
b = this.imageIcon.getBytes();
bi = new ByteArrayInputStream(b);
si = new ObjectInputStream(bi);
image = (ImageIcon) si.readObject();
} catch (IOException | ClassNotFoundException ex) {
System.out.println(ex);
}
return image;
}

public void setImageIcon(ImageIcon imageIconIn) {
ByteArrayOutputStream bo;
ObjectOutputStream so;
try{
bo = new ByteArrayOutputStream();
so = new ObjectOutputStream(bo);
so.writeObject(imageIconIn);
so.flush();
this.imageIcon = bo.toString();
} catch (IOException ex){
System.out.println(ex);
}
}

问题是在将字符串转换回 ImageIcon 时出现以下错误:

java.io.StreamCorruptedException: invalid stream header: EFBFBDEF

我认为 setImageIcon() 方法很好,但我不确定如何修复 getImageIcon() 方法。

我使用的是 Java 1.8 和 GSON 2.8.0

再次感谢您的帮助。

最佳答案

您的图标应该存储:

  • 使用 Base64 作为字符串内联在 JSON 文件中编码。

  • 在一个单独的文件中,文件名以字符串形式存储在 JSON 中。

    • { "iconFile": "./characters/dwarf.png"}

关于java - 如何将 ImageIcon 转换为字符串以存储在 JSON 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45772723/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com