我有以下问题。 我们有一个上传图片的Web服务。当您尝试上传某些图片时,它会失败。这些图片具有正确的MIMETYPE,它们不是CMYK(至少GIMP说它们在RGB中)。 抛出的异常是:“不支持的图像类型”! 问题发生在尝试启动此命令时:
BufferedImage img = ImageIO.read(new ByteArrayInputStream(image.getData()));
我深入研究了一下,发现真正的异常出现在ImageIO.read(ImageInputStream stream)
,当它尝试再次关闭流时!
public static BufferedImage read(ImageInputStream stream)
throws IOException {
if (stream == null) {
throw new IllegalArgumentException("stream == null!");
}
Iterator iter = getImageReaders(stream);
if (!iter.hasNext()) {
return null;
}
ImageReader reader = (ImageReader)iter.next();
ImageReadParam param = reader.getDefaultReadParam();
reader.setInput(stream, true, true);
BufferedImage bi;
try {
bi = reader.read(0, param);
} finally {
reader.dispose();
stream.close();
}
return bi;
}
一个抛出异常的图片示例是这样的:
我希望有人能帮我找出为什么会崩溃以及如何修复它!