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