簡體   English   中英

讀取image == java.lang.IllegalArgumentException時發生異常:image == null

[英]Exception while reading image ==java.lang.IllegalArgumentException: image == null

我正在讀取圖像,並希望獲得圖像格式。

private static String getFormatName(Object o) {
try {
    // Create an image input stream on the image
    ImageInputStream iis = ImageIO.createImageInputStream(o);

    // Find all image readers that recognize the image format
    Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);
    if (!iter.hasNext()) {
        // No readers found
        return null;
    }

    // Use the first reader
    ImageReader reader = (ImageReader)iter.next();

    String name = reader.getFormatName();
    iis.close();
    return name;
} catch (IOException e) {
}
// The image could not be read
return null;

}

當我執行它時,出現以下異常,

java.lang.IllegalArgumentException: image == null!

更新:您還需要調用setInput()

您無法關閉信息流。 當您這樣做時,閱讀器將如何閱讀圖像? 請執行下列操作:

reader.setInput(iis);
String name = reader.getFormatName();
iis.close();
return name;

在讀者有機會閱讀格式之前,您正在關閉流。

因此,語句順序為

reader.getFormatName();
iis.close();
return name;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM