2017-05-03 242 views
0

我需要從InputStream獲取BufferedImage。ImageIO.read()適用於FileInputStream,不適用於HttpInputStream

目前,我可以通過運行做到這一點:

BufferedImage bufferedImage = ImageIO.read(inputStream); 

的inputStream的FileInputStream一個實例。

然而,當的inputStreamHttpInputStream一個實例,數據的BufferedImage爲空。

如何從HttpInputStream創建BufferedImage?

感謝您的幫助!

+0

你是否從'HttpInputStream'返回任何字節? –

+0

我在HttpInputStream中看到的唯一東西是資源的URL。 – user1472409

回答

0

當你正在試圖讀取從URL的圖像,則可以使用IOUtils讀取byte陣列該文件,然後通過ByteArrayInputStreamImageIO,例如:

byte[] byteArray = IOUtils.toByteArray(new URL("<url>").openStream()); 
BufferedImage bufferedImage = ImageIO.read(new ByteArrayInputStream(byteArray)); 

openStream返回一個InputStream,因此,就應該可以創建bufferedImage對象。

相關問題