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