Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ImageIO可以';我看不懂某些图像_Java_Image_Javax.imageio - Fatal编程技术网

Java ImageIO可以';我看不懂某些图像

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

我有以下问题。 我们有一个Web服务,具有图像上传功能。当你试图上传某些图片时,它就失败了。这些图像具有正确的MIMETYPE,它们不是CMYK(至少GIMP说它们是RGB格式的)。 引发的异常是:“不支持的图像类型” 尝试启动此命令时出现问题:

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编码的,因此不受支持。