Правильно преобразование CMYK отображает к RGB с RMagick

Это в основном из соображений безопасности. Намного более трудно защитить систему, если Вы не можете положить, что Ваши строки устойчивы к внешним воздействиям.

9
задан The Who 5 December 2009 в 20:35
поделиться

3 ответа

Спасибо, Пекка, ты дал мне ответ (+1).

У вас должен быть скомпилирован ImageMagick с установленной Маленькой системой управления цветом (LCMS) . Это может быть уже так, если использовался установщик или пакет. Но я собирал из исходников. Это было так же просто, как установка LCMS из исходных текстов и перекомпоновка ImageMagick ( ./ configure; make; make install ).

В ImageMagick для точного воспроизведения цвета хорошо работает следующее:

convert FILENAME -profile /PATH_TO_PROFILE/sRGB.icm OUT.jpg

Итак, в RMagick я использую следующее:

if @image.colorspace == Magick::CMYKColorspace
   # Adjust the path as necessary
   @image.color_profile ="/usr/local/share/ImageMagick-6.5.4/config/sRGB.icm"
end

@image.write("out.jpg") { self.quality = 85 }
11
ответ дан 4 December 2019 в 10:32
поделиться

Входящие файлы в данном случае иметь профиль. Я буду исследовать еще немного. Я потерялся с цветом профили (например, где я могу скачать их? сайт ICC не сильно помог)

Не только вы запутались; Я тоже. На сайте ImageMagick есть обсуждения, которые, возможно, стоит просмотреть: Здесь Насколько я понял тогда, правильная работа с профилями возможна, когда используемый профиль можно идентифицировать (например, профиль монитора) или встроены в файл (я думаю, это можно сделать, по крайней мере, для TIFF и JPG в Photoshop). Посмотрите, например, это: Здесь . Удачи.

2
ответ дан 4 December 2019 в 10:32
поделиться

Я обнаружил, что решение командной строки The Who работает прекрасно, но решение RMagick не работает для меня.

Чтобы заставить его работать в RMagick, мне пришлось использовать метод Magick :: Image # add_format, который, согласно документации, позволит вам указать исходный и целевой профиль. Это выглядит так:

if img.colorspace == Magick::CMYKColorspace
  img.add_profile(RGB_COLOR_PROFILE)
end 
2
ответ дан 4 December 2019 в 10:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: