java 中 image 和 byte[] 相互转换

时间:2021-08-17 06:18:41
 
java 中 image 和 byte[] 相互转换可恶的…………其实也挺好的 
只是把好不容易写出来的东西记下来,怕忘了…… 
下面,我来介绍一个简单的 byte[] to image, 
我们只需要一个存储了图片信息的二进制串(byte[]) 
然后,这样: 
InputStream buffin = new ByteArrayInputStream(/*二进制串*/, 
                                              /*起始位置*/, 
                                              /*二进制串长度*/));

BufferedImage img = ImageIO.read(buffin); 
这样,我们就得到了一个可以输出的BufferedImage了,是不是非常简单呢~ 
接下来,我们再来写一段代码,写法,也很简单 
首先,我们要准备好一个可以输出的Image对象, 
然后,这样

ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
ImageIO.write((RenderedImage)/*要输出的图片*/,/* 图片的格式*/,bos);(要用try和chatch

然后用bos.toByteArray();(ByteArrayOutputStream.toByteArray)就可以得到想要byte[]了~ 
是不是非常简单呢~~ 
,我这么做只是想把上传过来 
的图片修改一下,生成一张规定大小的新图片然后一起存入数据库
好不容易用Toolkit类生成了一个什么什么图片,是说是java.awt.image.TookitImage对象

摘自http://blog.csdn.net/comcow/archive/2008/10/08/3031252.aspx

再加一句 
Image img=Toolkit.getDefaultToolkit().createImage(buf, 0,buf.length);

InputStream转换byte[]   
  public   byte[]   toBArray(   InputStream   is   )   
  {   
          ByteArrayOutputStream   outp   =   new   ByteArrayOutputStream();   
          int   ch   =   0;   
          while(   (ch=is.read())!=-1   )   
                outp.write(ch);   
          byte[]   b   =   outp.toByteArray();   
          return   b;   
}