3

我有以下问题。我们有一个带有图片上传功能的 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;
}

抛出异常的图像是这样的,例如:
崩溃的图像

我希望有人可以帮助我弄清楚为什么会崩溃以及如何解决它!

4

1 回答 1

2

附图有CMYK颜色模型。尝试将其转换为 RGB。

这个问题很有用:How to convert from CMYK to RGB in Java correct?

于 2012-08-21T10:26:19.777 回答