Понимание кода преобразования CMYK в RGB - PullRequest
0 голосов
/ 09 января 2020

Я смотрю верхний комментарий на этой странице:

https://www.php.net/manual/en/imagick.setimagecolorspace.php

В нем есть пример кода для преобразования изображения CMYK в RGB. Однако есть две вещи, которые я не понимаю:

  1. Он дважды использует функцию profileImage. Один раз, чтобы установить профиль CMYK, если изображение не имеет профиля. Второе использование функции добавляет профиль RGB к изображению. По-видимому, это означает, что к изображению теперь прикреплено как минимум два профиля изображения.

Вопрос 1: Почему вы хотите, чтобы изображение имело как профиль CMYK, так и профиль RGB? Что именно здесь делается? Как именно добавление второго профиля преобразует изображение из CMYK в RGB?

Самая последняя строка в коде использует функцию stripImage, которая полностью удаляет профили вместе с другими вещами, такими как данные EXIF.

Вопрос 2: Почему мы удаляем профили? Разве это не отменяет всего, что мы только что сделали?

1 Ответ

0 голосов
/ 09 января 2020

Если входное изображение имеет формат CMYK и не имеет профиля, его можно преобразовать двумя способами. Первый - просто использовать -colorspace sRGB. Но это не так точно. Лучше всего использовать два профиля. Первый определяет входное цветовое пространство как CMYK и дает ему точное определение его гаммы, а второй указывает, что он хочет преобразовать в sRGB. Существует несколько профилей типа CMYK, которые можно использовать. Без дополнительных знаний я предпочитаю USWebCoatedSWOP.i cc. Также есть несколько профилей sRGB. См. http://www.color.org/srgbprofiles.xalter и https://github.com/ellelstone/elles_icc_profiles/tree/master/profiles для профилей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...