日期:2014-05-20  浏览次数:20651 次

java怎样用StringBuffer的二进制(图片转换的)生成ImageIcon对象?
java怎样用StringBuffer的二进制(图片转换的)生成ImageIcon对象?

我把图片转成了二进制代码,存在了StringBuffer中,我想把StringBuffer的内容直接生成ImageIcon,然后在swing的jpanel中显示,不通过写文件到磁盘的步骤

------解决方案--------------------
“我把图片转成了二进制代码”

有没有这一步具体的代码

如果 StringBuffer 里的内容格式无误,可以用 toString().getBytes() 得到 byte[]


------解决方案--------------------
试试取得二进制字节数组,然后使用ImageIcon(byte[] imageData) 生成一个ImageIcon对象!
------解决方案--------------------

public Object getObject(byte[] b) {
Object o=null;
try {
ByteArrayInputStream bais = new ByteArrayInputStream(b);
ObjectInputStream ois;
ois = new ObjectInputStream(bais);
o =ois.readObject();
// ArrayList str = (ArrayList) ois.readObject(); //读取类
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return o;
}

能帮你把字节转化成一个File对象
剩下的就容易了吧。
但不知道为啥,我总感觉这种得到的图片和原图不一样,
------解决方案--------------------
你都 new 出一个 file 对象了,
为什么不直接通过 ImageIO 去 read 一个 BufferedImage 对象出来呢?


------解决方案--------------------
为什么要用StringBuffer来存byte[]??????这个很奇怪啊