BufferedImage 的高度和宽度在 InputStream 中为 null

Height and width of BufferedImage is null from InputStream

我正在使用这种方法来展示我的 BufferedImage:

public void setUriFromInpustream(InputStream in) {  
    BufferedImage bimg;
    try {
        bimg = ImageIO.read(in);
        originAspectRatio = (double) bimg.getWidth() / (double) bimg.getHeight();
        if (width == 0)
            width = bimg.getWidth();
        if (height == 0)
            height = bimg.getHeight();
        setPreserveOriginAspectRatio(preserveOriginAspectRatio);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

bimg.getWidth()bimg.getHeight() 向我显示 NullPointerException

有什么解决办法吗?

这在 ImageIO 中有详细记录 javadoc:

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