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