2

我接受图像作为用户的输入。我只想允许 JPEG 图像。图像作为 InputStream 到达(myInputStream下面称为)。在下面的代码中,返回的 IteratorImageIO.getImageReaders()始终为空。

ImageInputStream imageInputStream = ImageIO.createImageInputStream(
    myInputStream);
Iterator<ImageReader> iter = ImageIO.getImageReaders(imageInputStream);
if (!iter.hasNext()) {
    // this always happens
}
ImageReader reader = (ImageReader) iter.next();
if (!reader.getFormatName().equals("jpeg")) {
    // haven't got this far yet
}

我也尝试过myInputStream直接传递给ImageIO.getImageReaders()相同的结果。

4

1 回答 1

5

一个空的迭代器通常意味着 ImageIO 没有找到一个好的图像阅读器来解码你的图像。这可能是因为您的类路径中缺少正确的解码器,或者您的图像具有不受支持的颜色模型

于 2010-12-25T13:31:46.617 回答