Java: Как работать с изображением CMYK?

Я знаю, что RGB для мониторов, а CMYK для печати, но я хочу работать с CMYK без каких-либо преобразований. Я хочу загрузить изображение CMYK (jpeg) и распечатать его. Но когда я использовал com.sun.image.codec.jpeg.JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(is); return decoder.decodeAsBufferedImage(); , я получил изображение с инвертированными цветами. Как я могу получить такое же изображение в CMYK?


person Filosssof    schedule 29.09.2014    source источник
comment
Где вы взяли inversed colors image, на бумаге (в печатном виде) или на вашем экране?   -  person Eypros    schedule 29.09.2014
comment
У меня это на экране.   -  person Filosssof    schedule 29.09.2014
comment
Может быть, есть способ сохранить изображение в CMYK и отобразить его также на моем экране (пользователь должен видеть, что он загружает) в CMYK?   -  person Filosssof    schedule 29.09.2014
comment
обратитесь к этой ссылке   -  person Muhammed Refaat    schedule 29.09.2014
comment
@MuhammedRefaat Спасибо.   -  person Filosssof    schedule 29.09.2014
comment
Вы можете использовать мой JPEGImageReader с поддержкой CMYK.   -  person Harald K    schedule 29.09.2014


Ответы (1)


Причина, по которой ваши цвета инвертированы, заключается в том, что у вас есть специальный вариант изображения CMYK JPEG, а именно Adobe CYYK. Странные цвета возникают из-за старой ошибки Photoshop (значения CMYK инвертированы), которая теперь стала стандартом де-факто, который обрабатывается большинством программ JPEG (кроме Java).

Правильное преобразование CMYK (обработка различных вариантов, использование правильного цветового профиля и т. д.) можно найти по адресу: https://stackoverflow.com/a/12132630/413337.

person Codo    schedule 29.09.2014