java - ImageIO.read(inputstream) 在 BufferedImage 中给出 null

标签 java image-scaling

我正在尝试调整图像大小,为此我首先将输入流转换为缓冲图像,然后使用该缓冲图像来缩放它

BufferedImage bim=null;
try {
     bim=ImageIO.read(myinputstream);
    }
    catch (Exception ex) { ex.printStackTrace(); }

    Image img=bim.getScaledInstance(100, 100, BufferedImage.SCALE_SMOOTH);

但行:

bim=ImageIO.read(myinputstream);

不会给出任何异常,只是在 bim 中返回 null 。为什么 imageIO 无法读取我的输入流。我使用这个流将其写入图像上并且工作正常,但是当 ImageIO 读取它时,它返回 null 。我在某处读到我需要传入文件对象,但为什么还有一个选项。有人可以帮助我吗?

最佳答案

参见ImageIO.read .

If no registered ImageReader claims to be able to read the stream, null is returned.

我怀疑你有这个问题。看看您是如何注册您的 ImageReader 的?

关于java - ImageIO.read(inputstream) 在 BufferedImage 中给出 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36568214/

相关文章:

java Netbeans IDE - 覆盖图像(棋盘-棋子)

java - 传递带有异常的枚举 - Java

ios - iOS Retina 图像可以有奇怪的尺寸,即 28 x 15 像素吗?

php - 在 php jpg/png/gif 中动态缩放图像

sdl - 在 SDL 中缩放 Sprite

java - 递归方法中的多个返回

Java 8 orElseThrow : why is compiler not complaining that method does not have a "throws"

java - 如何使用 java lambda 将 List 转换为 Map<T, <K, List<Person>>>?

Java 图像调整大小 - 最近邻

C++ 如何通过删除像素来最佳缩放图像