ImageIO: невозможно прочитать изображение с цветовым пространством CMYK

У меня проблема с чтением определенного изображения jpeg (цветовое пространство CMYK), созданного с помощью ImageMagick:

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

Есть идеи решить мою проблему?


person FranckJS    schedule 23.02.2011    source источник
comment
Хранятся ли данные этого файла на диске, откуда эта программа может их прочитать?   -  person Dave G    schedule 23.02.2011
comment
Да и inputSteam правильно заполнен.   -  person FranckJS    schedule 23.02.2011
comment
@FranckJS: Я не знаю, актуально ли это для вас, но я опубликовал ответ, который должен решить вашу проблему.   -  person Codo    schedule 26.08.2012


Ответы (2)


Чтение изображений JPEG с цветами CMYK в Java довольно сложно. Но я опубликовал полное решение здесь. Это также решает проблему превращения темных цветов в белые.

person Codo    schedule 26.08.2012

Поскольку я обнаружил, что мое изображение имеет цветовое пространство CMYK, я нашел решение в stackoverflow: Проблема с чтением изображения jpeg с помощью imageio

Теперь проблема в качестве полученного изображения ... темные цвета стали белыми ...

person FranckJS    schedule 23.02.2011