ImageIO : cannot read image with CMYK color space

14.3k views Asked by At

I have a problem to read a specific jpeg image (CMYK color space) which have been created with ImageMagick :

inputStream = new ByteArrayInputStream(bytesImage);
bufferedImage = ImageIO.read(inputStream); 
//IIOException : unsupported image type

I tried to use JAI instead of ImageIO but it still doesn't work :

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

Any idea to solve my problem?

2

There are 2 answers

0
FranckJS On

Since I have found my image has a CMYK color space, I have found a solution on stackoverflow : Problem reading jpeg image using imageio

Now, the problem is the quality of my resulting image... dark colors became white...

0
Codo On

Reading JPEG images with CMYK colors is rather tricky in Java. But I've posted a complete solution here. It solves the problem of dark colors becoming white as well.