Java ImageIO:无法读取具有CMYK颜色空间的图像

Java ImageIO:无法读取具有CMYK颜色空间的图像,java,javax.imageio,jai,Java,Javax.imageio,Jai,我无法读取使用ImageMagick创建的特定jpeg图像(CMYK颜色空间): inputStream = new ByteArrayInputStream(bytesImage); bufferedImage = ImageIO.read(inputStream); //IIOException : unsupported image type 我尝试使用JAI而不是ImageIO,但仍然不起作用: seekableStream = new ByteArraySeekableStream

我无法读取使用ImageMagick创建的特定jpeg图像(CMYK颜色空间):

inputStream = new ByteArrayInputStream(bytesImage);
bufferedImage = ImageIO.read(inputStream); 
//IIOException : unsupported image type
我尝试使用JAI而不是ImageIO,但仍然不起作用:

seekableStream = new ByteArraySeekableStream(bytesImage);
bufferedImage = JAI.create("Stream", seekableStream).getAsBufferedImage();
//Unable to render RenderedOp for this operation

有什么办法解决我的问题吗?

因为我发现我的图像有一个CMYK颜色空间,所以我找到了stackoverflow的解决方案:


现在,问题是我生成的图像的质量。。。深色变成白色…

在Java中,读取带有CMYK颜色的JPEG图像相当棘手。但我已经发布了一个完整的解决方案。它也解决了深色变白的问题。

这个文件的数据存储在磁盘上,程序可以在磁盘上读取吗?是的,并且输入的蒸汽被正确填充。@FranckJS:我不知道这是否仍然与您有关,但我已经发布了一个答案,应该可以解决您的问题。