jsf form使用的注意點byte和Image的轉化
兩個h:form巢狀在IE下是錯誤,
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物件
摘自
再加一句
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;
}