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