java 中 image 和 byte[] 相互转换

Posted OYP

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 中 image 和 byte[] 相互转换相关的知识,希望对你有一定的参考价值。

 

 
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;   
}   

以上是关于java 中 image 和 byte[] 相互转换的主要内容,如果未能解决你的问题,请参考以下文章

C# Byte[]ImageBitmap 之间的相互转换

Image与byte[]数组的相互转换

php 如何将图片转换成java中Byte[]的

Android-DrawableBitmapbyte[]资源文件相互转换

C# string和byte[]数组之间相互转换

java怎样把一个byte数组保存成图片到硬盘上?