2012-10-08 26 views
0

我有jai-imageio jar並將其添加到我的課程路徑中。我只是不知道爲響應的輸出流寫入.tif圖像。有人能幫我嗎?無法使用ImageIO從控制器寫入tif文件

這裏是我的代碼:

RenderedOp image = JAI.create("fileload", filepath); 
ImageIO.write(image.getAsBufferdImage(), "tif", response.getOutputStream()); 

我知道javax.imageio.ImageIO中不支持TIF圖片,所以我做什麼用宰的ImageIO,使其工作?我迷路了。

注意:上面的代碼適用於其他圖像類型,如jpeg和png。

+0

爲什麼你需要TIF圖像支持,如果它適用於你的PNG? – BalusC

+0

由於用戶正在上傳圖片,通常他們是tif圖片,但我們支持tif,png和jpeg,並且我正嘗試將他們上傳的圖片傳回給他們。 – dmoss18

+0

哦?你在操縱上傳的圖片嗎? (例如調整大小,切割,傾斜,旋轉等)?否則,我真的沒有看到任何理由使用Java2D API以這種方式將上傳的圖像傳回。 – BalusC

回答

2

它看起來像是你在錯誤的方向上存儲和提供上傳的圖像。你根本不需要整個Java 2D API。

當您檢索上傳的圖像,只是做

InputStream input = uploadedFile.getInputStream(); 
OutputStream output = new FileOutputStream(uniqueImagePath); 
// Now write input to output in a loop the usual way. 

當你成爲一個上傳的圖片,只是做

InputStream input = new FileInputStream(uniqueImagePath); 
OutputStream output = response.getOutputStream(); 
// Now write input to output in a loop the usual way. 

你並不需要按摩/操縱字節的。只是流式傳輸他們未經修改。

+0

如果我有一個html ,圖像是否仍然使用您的方法顯示? – dmoss18

+0

爲什麼不呢? – BalusC

+0

所以我正在做你的建議,完成IOUtils.copy(輸入,輸出),但我得到一個socketException:連接重置由peer:套接字寫入錯誤。你知道這意味着什麼嗎? – dmoss18