Java ImageIO.read(inputstream)在BuffereImage中提供空值

Java ImageIO.read(inputstream)在BuffereImage中提供空值,java,image-scaling,Java,Image Scaling,我正在尝试调整图像的大小,为此,我首先将inputstream转换为缓冲图像,然后使用缓冲图像来缩放它 BufferedImage bim=null; try { bim=ImageIO.read(myinputstream); } catch (Exception ex) { ex.printStackTrace(); } Image img=bim.getScaledInstance(100, 100, BufferedImage.SCALE_SMOOTH

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

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。我在某个地方读到我需要传入file对象,但为什么还有一个选项呢。有人能帮我吗。

请看

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


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

我读到了,但很抱歉我不明白,我该如何解决这个问题/所以我需要传入imageinputstream而不是inputstream?@SyedMuhammadOan-我想说不-inputstream表单将流包装在imageinputstream中。我建议您使用.Iterator iter=ImageIO.getImageReadersmyimageinputstream调查读者;如果iter.hasNext{}它总是进入if,那么它意味着什么/@SyedMuhammadOann-这意味着没有注册图像阅读器。有许多例子可能会有所帮助。google searchj for ImageReader imageio java寄存器显示了更多示例。输入流中的数据不是可识别的图像格式。我正在发送png图像,但显然不是。你是怎么寄的?你有没有考虑过发送代码中可能有错误?我用邮递员发送。我使用相同的inputstream在我的文件中写入它,这非常有效。怎么了