Java ImageIO可以';我看不懂某些图像
我有以下问题。 我们有一个Web服务,具有图像上传功能。当你试图上传某些图片时,它就失败了。这些图像具有正确的MIMETYPE,它们不是CMYK(至少GIMP说它们是RGB格式的)。 引发的异常是:“不支持的图像类型”强> 尝试启动此命令时出现问题:Java ImageIO可以';我看不懂某些图像,java,image,javax.imageio,Java,Image,Javax.imageio,我有以下问题。 我们有一个Web服务,具有图像上传功能。当你试图上传某些图片时,它就失败了。这些图像具有正确的MIMETYPE,它们不是CMYK(至少GIMP说它们是RGB格式的)。 引发的异常是:“不支持的图像类型” 尝试启动此命令时出现问题: BufferedImage img = ImageIO.read(new ByteArrayInputStream(image.getData())); 我再深入一点,当他再次尝试关闭流时,真正的异常会随着ImageIO.read(ImageInpu
BufferedImage img = ImageIO.read(new ByteArrayInputStream(image.getData()));
我再深入一点,当他再次尝试关闭流时,真正的异常会随着ImageIO.read(ImageInputStream)
抛出
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;
}
引发异常的图像如下所示:我希望有人能帮我弄清楚,为什么会崩溃,以及如何修复它 所附图片具有CMYK颜色模型。尝试将其转换为RGB
这个问题很有用:抛出的异常是什么?对不起,我忘记了:抛出的异常是:“不支持的图像类型”!我这里没有任何工具来进一步检查JPEG文件,但至少Java JPEG解码器认为图像是CMYK编码的,因此不受支持。