ImageIO.read()适用于FileInputStream,而不适用于HttpInputStream

时间:2017-05-03 20:34:30

标签: java

我需要从InputStream获取BufferedImage。

目前,我可以通过运行:

来完成此操作
BufferedImage bufferedImage = ImageIO.read(inputStream);

inputStream FileInputStream 的实例时。

但是,当 inputStream HttpInputStream 的实例时,BufferedImage为null。

如何从 HttpInputStream 创建BufferedImage?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

当您尝试从URL读取图片时,您可以使用IOUtils读取byte数组中的文件,然后将ByteArrayInputStream传递给ImageIO },例如:

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

openStream返回一个输入流,因此您应该能够创建bufferedImage个对象。