byte[] 到image的转换问题
大家好:我想的是把一个图片文件转换成 byte 数组后通过 socket 传到 server 端,并在server端显示出来,
通过相应测试,byte数组数据是传到server端了,可在取出数据后并转换成 image并显示时,图片显示为全黑色,
请问这是什么原因?
图片文件转换成byte[]代码如下:
ImageIcon ima=new ImageIcon("D:\\temp\\Sunset.jpg");
BufferedImage bu = new BufferedImage(
ima.getImage().getWidth(null),ima.getImage().getHeight(null),BufferedImage.TYPE_INT_RGB);
ByteArrayOutputStream imageStream=new ByteArrayOutputStream();
boolean resultWrite = ImageIO.write(bu, "jpg", imageStream);
byte [] tagInfo=imageStream.toByteArray();
在server端把读取出的byte[]转换成image的代码如下:
Image img=Toolkit.getDefaultToolkit().createImage(buf, 0,buf.length);
ImageIcon imagico=new ImageIcon(img);
cjf.jta.insertIcon(imagico);
其中buf为读取出的byte数组; cjf.jta为一个JTextPane对象
请大家帮忙看看,小弟在此表示感激!
----------------解决方案--------------------------------------------------------
问题已解决
不好意思啊,天太闷,头脑不消晰了,文件都没放进去怎么能读到呢修改革开放BufferedImage bu=new..........一句为:
BufferedImage bu = ImageIO.read(new File("D:\\temp\\Sunset.jpg"));
就可以了
----------------解决方案--------------------------------------------------------