我有以下问题。 我们有一个带图像上传功能的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;
}
抛出异常的图像就是这样的例子:
我希望有人可以帮助我弄清楚,为什么会崩溃以及如何解决它!
答案 0 :(得分:2)
附图中有CMYK颜色模型。尝试将其转换为RGB。