javax。Java中图像IO检测图像编码
我正在接受用户输入的图像。我只允许使用JPEG图像。图像作为输入流到达(下面称为myInputStream
)。在下面的代码中,ImageIO.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()
,结果相同
# 1 楼答案
空迭代器通常意味着ImageIO没有找到一个好的图像读取器来解码图像。这可能是因为您缺少right decoder in your classpath,或者您的图像有一个unsupported color model