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

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


  如果没有注册的ImageReader声称能够读取该流,则返回null。


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

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

10-10 19:40