Браузеры и Color Management

Мониторы с большим цветовым охватом (вроде того, за которым я сейчас пишу этот текст создают понятную проблему:

Если расширенный охват используется (у монитора не включили насильно режим sRGB или что-то такое), а программа показа картинок цветовых преобразований делать не умеет, то вы увидите на экране фигню.

Ну совсем грубо, RGB (255,0,0) - это на двух мониторах ("обычном" и "расширенном") будет красный цвет, соответствующий красному углу охвата. Только красный этот будет сильно разным, см. например картинки с охватом

На скриншоте ниже четыре (на самом деле 2) варианта показа на мониторе одной и той же картинки:

browser-cm.jpg
открыть покрупнее

Слева направа и сверху вниз:

  • Firefox 3 (с включенным Color Management)
  • Photoshop CS3
  • Internet Explorer 7
  • Microsoft Picture and Fax viewer
Верхний ряд: правильное представление, нижний: неправильное.

Наибольшие страдания будет причинять интернет:

  • большая (или бОльшая?) часть графических элементов сайтов не содержит никакой информации о цветовом пространстве.
  • многие браузеры, даже получив информацию о цветовом пространстве, не делают с ней ничего.

На PC исключение из второго правила я знаю одно: Firefox 3 (скорее всего, Safari for Windows тоже умеет, но проверить не на чем, не имею). А разница есть.

Самое смешное, что я совершенно не представляю, как у вас на мониторе выглядит вышепоказанный скриншот (он сконвертирован в sRGB перед выкладкой):

  • монитор может быть неоткалиброван, но близок к sRGB (будет примерно правильно)
  • монитор может быть откалиброван отлично, далек от sRGB, а показ делается программой, которая про Color Management не в курсе (будет слишком кислотно)
  • монитор может быть откалиброван неверно, а показ делается ICC-aware программой (будет вообще неизвестно что)
Впрочем, во всех случаях разница между верхом и низом будет видна. Ну, если монитор не монохромный.

Чтобы два раза не вставать: к Firefox 3 правильно ставить вот этот extension, чтобы не ручками в about:config все править.

Comments

А Опера?

Насколько я не нашел ничего гуглом ('Opera color management') - опера на ICC/ICM плюет

в сафари и на файрфоксе этот кроп выглядит совершенно одинаково, но это на маке

На маке все и должно быть нормально.

Опера, Samsung Syncmaster 997MB.
Верхняя скорее оранжевая, нижняя скорее алая. Нижняя субъективно нравится больше.

Ну так на скриншоте они и будут разными, это так и должно быть.

Вопрос же в том, какого цвета исходная картинка (если промотать журнал пониже, она там есть) и насколько этот цвет соответствует моему замыслу его же.

//прилежно пролистала
Такая же, как в первом ряду, на глаз. Тоже скорее оранжевая.

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

Подождите, что значит "обрабатывает" ? Только приложение знает, какое исходное цветовое пространство имеют посылаемые на монитор пикселы.

Поэтому либо любое рисование битмэпа сопровождается указанием пространства (старые виндовые программы этого, очевидно, не делают), либо если цветовое пространство не указано - делается какое-то предположение (sRGB), тогда все как-то будет работать, либо это вообще все рекламные мантры :)

Но, конечно, посмотреть как MSIE ведет себя под вистой - надо бы.

Второй момент касается именно "дополнительных ухищрений" - у меня Макос отлично показывает на новом мониторе с расширенным охватом (nec 3090) все слишком кислотно. Что лечится калибровкой-профилированием, естественно.

Насколько я понимаю, это означает, что изображение будет выглядеть одинаково во всех программах. Если монитор откалиброван изображение должно выглядеть во всех программах одинаково правильно. Т.е. специальной поддержки от каждой программы более не требуется.

Чудес не бывает.
Вот есть битмэп, в нем пиксель со значением 250,10,50. Этот самый битмэп мы суем на монитор. В зависимости от исходного цветового пространства (системы координат в которой у нас цвет имеет 250-10-10), нам нужно сделать какое-то преобразование.

Отлично, значит все битмэпы, суваемые на монитор, должны суваться вместе с информацией о цветовом пространстве.

Ничего не могу сказать про MacOS, потрохов интерфейса не знаю, но в виндах эта самая информация - необязательная как минимум (до Висты ведь можно было просто положить битмэп в видеокарту). Другими словами, старые программы, написанные до Висты, так и будут работать мимо Color Engine. Виста, конечно, может предполагать, что все старые программы суют ей sRGB, но это неверное предположение.

Проверить просто - взять яркую картинку в сильно нестандартном пространстве (ProPhoto RGB, например) и посмотреть ее на мониторе с помощью ACDSee Pro 2 с включенным и выключенным Color Management. разница обязана быть.

Разница действительно есть. А вот ссылка что изменилось в висте.
http://en.wikipedia.org/wiki/Windows_Color_System

Я читал MS-овский документ про WCS и меня тошнило.

Но почему тошнило - уже не помню совершенно.

Надо Висту поставить и потестировать точность, что-то я в MS слабо верю, хотя остальные тоже не лучше.

Кстати неплохо было бы выложить оригинал. Интересно посмотреть как он будет выглядеть. :)

Оригинал взят прямо из этого блога.
http://blog.lexa.ru/2008/07/16/afrika.html

Сафари под вендой тоже это умеет. Проверял.

С выходом FF3 конечно стало жить намного интереснее и цветастее, только вот тормозит он с вклчением профилей безбожно. Попробуйте откройте в нескольких закладках большой список фото. В итоге я выключил поддержку, всё ж 99% фото выкладываются в вебе в sRGB.

"У меня не тормозит" (должно зависесть от компьютера, конечно), по photosight.ru побродил - не вижу разницы в скорости.

А вот разница в картинках - есть. MSIE показывает прекрасные яркие кислотные цвета (заметно, например, на яркой зелени), а FF3 - гораздо более нормально.

photosight.ru нет больших списков фото http://2photo.ru/ для теста.
получается вы видете много фото выложеных не в sRGB? можно примеры ссылочек?

Проблема не в не-sRGB фотографиях, а в просмотре sRGB фотографий на не-sRGB мониторе.

в большинстве случаев в картинках нет вообще никакой информации о профиле. Помоему только в CS3 появилась галочка в сохранении для веба icc. Хотя конечно со временем всё станет на свои места.

Ну вот мой пример - там информация о профиле есть.

Вообще, для веба вполне safe думать, что если информации о профиле нет, то это sRGB.

2photo тоже проблем не вызвала. Т.е. интернетный канал (6-мегабитный стрим) явно медленнее, чем рендеринг картинки. Но компьютер - быстрый, на условном старом ноутбуке проблема будет.

А что касается sRGB. Картинка на скриншоте - в sRGB. Но это не мешает MSIE показывать ее неправильно (слишком кислотно) т.к. условные 255,0,0 RGB так и идут на монитор без изменений, а должно быть что-то вроде 255,10,10 (цифры придумал из головы, это условный пример). Проблема в том, что у меня охват монитора много шире, чем sRGB (режим sRGB тоже есть, но я монитор с расширенным охватом покупал осознанно, для софтпруфа).

понятно, у меня 2090uxi а у него только 69% of Adobe RGB но нужно попробовать тоже сравнить.

У меня был (теперь он вторым подключен) 2180, там таких серьезных проблем не было.

трекбэк к вам не пробился. И ещё оффтоп, есть ли способ вытянуть из openid e-mail для того чтобы работала подписка на коменты?

Столкнулся с такой же проблемой (Lenovo L220x) и вот к чему пришел:
Opera не умеет работать с color management вообще.
Safari, как я читал, умеет наполовину: он твердо уверен, что у пользователя стоит монитор sRGB и приводит все картинки к этому стандарту. То есть, на обычном мониторе фотографии в AdobeRGB выглядят хорошо, но с необычным монитором это не работает.
Точно так же с цветом работают листалки фотографий вроде faststone или irfanview. Приятное исключение - ACDSee Pro 2.

Safari я не смотрел (мне оно и на маке не нравится, а та версия что смотрел под виндами - там уверенно висла).

Но таки да - в 21-м веке все программы просмотра картинок должны быть ICC-aware. Кроме ACDSee это, кстати, еще и Imatch и, если не путаю, Thumbs Plus.
Ну и естественно всякие C1 и прочие DxO

А что делать со след. фигней: монитор калибруем (в LUT монитора), профилируем, профиль ставим (на самом деле SpectraView ставит) в соотв. монитору в системе в Color Management вкладке. Результат -- фотошоп показывает все правильно. Винда (Опера и т.п.) показывают "кислоту", т.е. то-же самое, если в шопе сделать софт-прув на профиль монитора. Как в картинках выше вообщем. Профиль в жипеге есть (и он sRGB), но система на него плюет и учитывает профиль монитора (или применяет -- как сказать правильнее?). Можно удалить сопоставление профиля монитора и собственно монитора (на вкладке Color Management в системе) -- тогда винда использует sRGB и в браузерах все ОК, но вот что тогда с шопом? Мне кажется, что ничего, и можно так оставить, но вот уверенности нет.

Оно у тебя как-то путано и мне рвет мозг.

1. Винда (опера и т.п.) показывают все кислотно - да. Но не "как soft proof", а как 'assign profile'. При софтпруфе с мониторным профилем у тебя изображение вообще не должно меняться.

2. Допустим, ты привязку профиля удалил (дальше пойдут цифры от моего примера, они только для примера) и у тебя просто валяется файлик на диске что-то-там.icm
Берем sRGB-шный файл, весь красный (255,0,0). На моем мониторе (с расширенным охватом) чтобы его нормально показать нужно подать в видеокарту (216,54,2) /цифирки берутся из convert-to-profile мониторный профиль/
Внимание, вопрос: откуда винда узнает, что нужно конвертировать именно в эти цифры?

2b. А откуда фотошоп узнает то же самое ?
У фотошопа картинка меняется как только ты в дисплейных свойствах меняешь default profile и жмешь OK...

1. Не получается так. Берем картинку в sRGB, открываем ее два раза в шопе, для одной делаем assign профиля монитора (кот. стоит в системе), для другой делаем софт-пруф и выбираем Monitor RGB -- результат одинаков.

2. Винда показывает точно так-же, как в п.1. Т.е. как будто делает assign профиля монитора именно, а не sRGB почему-то. А если удалить привязку, то картинка в sRGB в винде выглядит правильно (как в шопе).

Разобрался.

1. когда ты делаешь View-SoftProof-Monitor RGB, тебе в настройках софтпруфа ставят галку 'Preserve RGB numbers' (это видно, если следующим шагом пойти в Proof Setup -> Custom).

Естественно, при этом оно становится кислотным (ибо на самом деле это никакой не пруфинг, а эмуляция поведения того же MSIE)

2. Тот же MSIE показывает sRGB-картинку неправильно (точно так же как на шаге выше Photoshop-SoftProof-Monitor colors), независимо от того установлен в системе профиль, не установлен и какой установлен.

3. Если ты для реального просмотра картинок перед публикацией используешь Soft Proof ->Monitor colors, то спешу тебя обрадовать - твои зрители с включенным ICC видят ее иначе (и с выключенным - тоже т.к. мониторы другие)

Круто.
Для просмотра перед публикацией не использую, но за предупреждение спасибо.

Не пробовали Висту с управлением цветом?
Виста умеет пребразовывать все из sRGB в заданный хват монитора, если ей подсунуть профили ?

Я тут посмотрел, как добавляется поддержка ICC в Media Player Classic (http://forums.overclockers.com.au/showthread.php?t=723315) - и получается, что для поддержки ICC в программах (при условии загруженного в LUT профиля) им достаточно всего-то знать 9 координат чистых цветов. Совершенно непонятно, что мешало прикрутить это в систему.

Не все профили - матричные, добавить поддержку матричных, но не добавить - табличных было бы странно.

Но главное - без ICC можно прямо фигачить в видеопамять, а даже с матричным профилем придется умножить вектор на матрицу для каждого выводимого пиксела.

Ну да, понятно, что обратная сторона это производительность, но хоть опционально могли ведь сделать, на маках ведь как-то с этим живут. В семерке вон наконец-то появилась галочка для автозагрузки профиля, теперь можно обходиться без внешних загрузчиков, всего 15 лет на это ушло - тоже ведь раньше из каких-то соображений не делали.

А новый Фокс позволяет объявить все джипеги без встроенного профиля sRGB-шными ?

И монитор откалибровать не забыть :-)