Точное преобразование цветового пространства профиля происходит в и обратно в независящем от устройства цветовом прострастве (PCS), то есть система управления цветовым профилем программы преобразует изображение из пространства sRGB (например) через PCS в пространство цветов монитора. Для преобразования могут использоваться две модели алгоритмов: Matrix/TRC и LUT (Lookup table), соответственно цветовой профиль может быть основан на Matrix/TRC, на LUT или содержать и то и то. В Windows не все программы умеют управлять цветом в принципе, не каждая умеющая программа умеет работать с обоими алгоритмами преобразования, определённый алгоритм может поддерживаться только для определённых файлов, не каждая может конвертировать в профиль монитора. Зоопарк. Попробуем с ним немного разобраться и начнём с...

Начнём с браузеров

Для теста я использую специально подготовленные файлы (первые три файла с поддержкой и LUT и Matrix/TRC профилями, следующие три только с LUT, по три файла потому что три расширения (jpg, png и tif). Возможны несколько вариантов отображения данных файлов:

Система управления цветом работает корректно
Система управления цветом работает корректно
Система управления цветом работает не совсем корректно
Система управления цветом работает не совсем корректно
Система управления цветом не работает
Система управления цветом не работает

Откроем html страничку со всеми файлами в разных браузерах

Слева направо Microsoft Edge 95.0.1020.53, Chrome 96.0.4664.45, Firefox 94.0.1
Слева направо Microsoft Edge 95.0.1020.53, Chrome 96.0.4664.45, Firefox 94.0.1

Открыть отдельно.

Что можно сказать при взгляде на изображение? Ну точно можно сказать, что у Firefox есть проблемы, а у Edge и Chrome всё ок. Firefox можно тюнинговать, подробнее тут (пишем в адресной строке: about:config, в поиске: color_m,

gfx.color_management.enablev4 = true

gfx.color_management.mode = 1

gfx.color_management.rendering_intent = 1

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

Сделать скриншот без искажений не удалось, пришлось сфотографировать
Сделать скриншот без искажений не удалось, пришлось сфотографировать

Открыть отдельно.

Картина радикально меняется, Firefox молодец, после проделанных манипуляций он начинает показывать абсолютно всё верно, а вот остальные браузеры нет, похоже, что они работают не с профилем монитора, а с sRGB, так как, если бы работали с профилем монитора, то данный эффект отменился бы.

А теперь применим к монитору профиль на основе LUT+Matrix

Edge 95.0.1020.53, Chrome 96.0.4664.45, Firefox 94.0.1, 
Edge Dev 97.0.1072.8, Chrome Canary 98.0.4714.0, панель настроек
Edge 95.0.1020.53, Chrome 96.0.4664.45, Firefox 94.0.1, Edge Dev 97.0.1072.8, Chrome Canary 98.0.4714.0, панель настроек

Открыть отдельно.

У стабильных версий Edge и Chrome поменялся цвет надписей red green blue, Firefox по прежнему молодец (Dev версия Edge пофиксила данное поведение, Canary версия Chrome всё ещё нет). Автор тестовых картинок утверждает, что такое поведение возникает, если программа не умеет работать с LUT профилем устройства).

Попробуем сравнить реальное изображение в разных браузерах, для этого воспользуемся недавной анонсированной утилитой ICAT от NVidia, сделаем скриншоты браузеров Edge и Firefox и сравним (надеюсь, наспех зарегистрированный бесплатный сайт тут, не заблокирует доступ, на всякий случай зеркало).

Изображения
Firefox
Firefox
Edge
Edge

Оригиналы файлов: Firefox, Edge.

Видно, что на конкретно данном примере цветопередача совпадает, а вот чёткость у Firefox лучше, с Chrome ситуация аналогична, с цветопередачей всё ок, а чёткость хуже.

Продолжим с программами для просмотра графических файлов

В тесте участвовали Windows Photo 2021.21110.8005.0, FastStone 7.5, HoneyView 5.42, ImageGlass 8.2.6.6 (GitHub) , IrfanView 4.58, JPEGView 1.0.37 (SourceForge), Nomacs 3.16.1709 (GitHub), PicView 1.6.1 (GitHub), qimgv 1.0.2 (GitHub) и qView 4.0 (GitHub), XnView 0.99.1. Изначально я также хотел продемонстрировать с какой скоростью открывается файл в каждой из программ (легко замерить скорость открытия программы с помощью PowerShel и команды

Measure-Command {Invoke-Item .\example1.jpg}

десяти прогонов с закрытием программы после каждого прогона, но быстро понял, что это быссмысленно, открытие программы != завершению открытия файла, как кэширует Windows вообще не понять, но тем не менее результаты следующие:

  • Windows Photo открытие 247 мс;

  • ImageGlass 47 мс (но файл отображается примерно через одну секунду);

  • У остальных программ в среднем открытие происходит за 49 мс.

В просмотрщиках опция управления цветом, если и есть, то по умолчанию выключена (перед тестирование включал), также у некоторых есть опция конвертирования в профиль монитора, также по умолчанию выключена, но мною включена. Программы Nomacs, PicView, qimgv и qView вылетели, так как в принципе не умеют работать с системой управления цвета.

Просмотрщик может использовать систему управления цветом (1 балл), использовать, но преобразовывать некорректно (0.5 балла) или совсем не использовать (0 баллов), за наличие конвертации в профиль монитора 0.01 балла, за возможность выбора профиля для файлов у которых его нет 0.001 балла.

В результате получается следующая таблица

XnView лидер
XnView лидер

Похоже, что наиболее корректно реализована система управления цветом в XnView, в нём же, кстати, можно выбрать способ визуализации, если исходное цветового пространство превышает размер конечного цветового профиля.

Демонстрация разных методов преобразования

Удивился тому, что FastStone и IrfanView спотыкаются на png, показывая следующее

Наверное, у этого поведения есть даже вменяемое обхъяснение, поделитесь, если знаете
Наверное, у этого поведения есть даже вменяемое обхъяснение, поделитесь, если знаете

От Windows Photo особенного не ждал, поэтому особо и не расстроился. Заинтересовал ImageGlass, симпатично выглядит, активно развивается, в текущем dev билде уже часть косяков поправили (заработало управление цветом на tif, например), может и перерасчёт в профиль монитора прикрутят.

Если сравнивать цветопередачу у участников теста, то у всех кроме ImageView изображение ничем не отличается от изображения в FireFox. ImageView изображение в профиль монитора не конвертирует, в результате оно сильно ярчит, аналогичного эффекта можно добиться, если, например, отключить автоопределение и использование профиля монитора у FastStone.

Зеркало

Изображения
ImageGlass
ImageGlass
Firefox
Firefox

Оригиналы файлов: Firefox, ImageGlass

Выводы? Как таковых не будет.

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

Если разбираетесь меньше меня, то могу сказать одно: пользуйтесь тем, что нравится с учётом того, что для вас важно.

Файлы, используемые для теста, распространяются по лицензии Creative Commons BY-SA 4.0, автор Florian Höch . Скачать их, ознакомиться с принципом работы и объяснить мне, где я ошибся можно здесь, также можно скачать по прямым ссылкам тестовые профиля (зеркало), файлы для теста (зеркало). Для быстрой смены профиля монитора можно воспользоваться программой DisplayProfile от X-Rite. Фотография льва взята на сайте www.signatureedits.com.

p.s. Если у вас WindowsPhoto после загрузки изображения меняет его цвет, то скорее всего дело в цветовом профиле монитора, установите sRGB (Adobe RGB, если монитор с широким цветовым охватом), и, возможно, проблема исчезнет, но учитывайте, что лучше использовать профиль производителя, а ещё лучше произвести калибровку монитора.

История изменений темы

v05 Добавил версии программ для просмотра графических файлов.

v04 Добавил прямые ссылки на тестовые файлы, тестовые профили для монитора и программу, позволяющую быстро менять профили монитора.

v03 Добавил пример работы разных методов визуализации у XnView.

v02 Добавил тест браузеров с профилем монитора на основе LUT+Matrix.

v01 Добавил зеркала видео и возможность открыть некоторые файлы отдельно.

Комментарии (10)


  1. Moskus
    19.11.2021 03:00
    +1

    Вот что написано об этом в справке Irfanview: http://irfanview.helpmax.net/en/options-menu/properties-viewing/

    У меня есть ощущение, что нарушен не функционал, а логика применения профиля в irfanview. Попробую на досуге проверить.


  1. IKStantin
    19.11.2021 07:55

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

    Корректно как раз показывать со смещением синего. Иначе получается, что программа не учитывает профиль монитора, а гонит цифры по sRGB.

    Если у вас WindowsPhoto после загрузки изображения меняет его цвет, то скорее всего дело в цветовом профиле монитора, установите sRGB (Adobe RGB, если монитор с широким цветовым охватом),

    Устанавливать AdobeRGB следует только, если вы работаете с полиграфией и точно знаете зачем вам это нужно. Потому что в половине программ, не работающих с icc вы получите кривой цвет.

    ещё лучше произвести калибровку монитора.

    Кроме калибровки, нужно провести профилирование.


    1. Putincev Автор
      19.11.2021 07:59
      +1

      image
      XnView, HoneyView, FastStone
      IrfanView, ImageGlass, Windows Photo
      Edge, Chrome, Firefox
      Итак, кроме ImageGlass, Edge и Chrome остальные программы показывают серый цвет корректно, я скорее поверю в то, что автор теста прав, чем в то, что все остальные разработчики ошиблись (к тому же, у Edge и Chrome движок один).
      Автор утверждает следующее:

      You will also want to make sure that an application is actually using the display profile and not a generic profile like sRGB. For that purpose, several test profiles are available which, when installed and assigned to a display device, will introduce a strong color cast to the whole display—except in correctly color managed applications that use the display profile, which will cancel out the color cast. So, if after installing and assigning one of the test profiles, you see a strong color cast on gray elements in the pictures below, the display profile isn't being used.

      Но может вы и правы.


      1. Moskus
        19.11.2021 10:13

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

        Вот тут, например, я отвечаю на вопрос о том, "как в EXIF хранится время съемки" и автор вопроса, который был готов взяться за решение задачи, как-то сразу теряет энтузиазм. Заметьте, я был единственным, кто предложил ответ вообще (узость области) и то - только благодаря моему увлечению криминалистикой данных и обработкой изображений.


      1. IKStantin
        19.11.2021 12:08

        Почему серый цвет должен показываться корректно, если вы явно в профиле указали смещение синего? Элементарная логика же.

        Или там в тестовом файле тоже смещение синего в обратную сторону, а вовсе не серый цвет?

        Вобщем, вам следует выложить тестовые файлы и этот синий профиль в доступ. Тогда будет понятнее


        1. Putincev Автор
          19.11.2021 12:59

          Потому что программа, умеющая в управление цветом, учитывает профиль в изображении и соотносит его с профилем монитора? Не уверен, если честно. С радостью выслушаю компетентное объяснение и добавлю в качестве пояснения. Фотошоп при включённом тестовом профиле у монитора показывает изображение именно с серой полоской в отличии от того же Хрома.
          Тестовые профиля (зеркало).
          Файлы для теста (зеркало).

          Для быстрой смены профиля монитора можно воспользоваться программой DisplayProfile от X-Rite.


          1. IKStantin
            19.11.2021 17:19
            -1

            У меня фотошоп дает тот же смещенный оттенок, а вовсе не серый. И это правильно.


            1. Putincev Автор
              19.11.2021 18:51

              Как я уже и говорил, Firefox можно тюнинговать.
              Одна из его опций в настройке: gfx.color_management.force_srgb (принудительное использование sRGB). Если поменять её значение на True, то внезапно FireFox начинает показывать серую линию с оттенком.
              У XnView также можно вручную указать, какой профиль используется (по умолчанию используется системный, то есть активный на текущий момент профиль монитора), если выбрать sRGB то, тоже появляется оттенок.
              Итак, имеем следующее:

              1. Автор, создавший тест, утверждает, что в случае использования программой sRGB профиля (установленные в систему профиля все тут: C:\Windows\System32\spool\drivers\color), а не профиля монитора, серый будет показывается с оттенком, характерным для выбранного тестового профиля;
              2. Firefox, когда gfx.color_management.force_srgb=false, серый показывает серым;
              3. Firefox, когда gfx.color_management.force_srgb=true, серый показывает c оттенком;
              4. XnView, когда выбран профиль устройства, серый показывает серым;
              5. XnView, когда выбран профиль sRGB, серый показывает c оттенком;


              image
              Изображение отдельно.

              На основе этих пяти фактов вы какие выводы сделать можете?


              1. IKStantin
                19.11.2021 19:13

                У меня вообще какое-то подозрение, что эти профили кривые. В момент применения через displayprofile появляется оттенок у всей винды. Ну ок. Но после перезагрузки Win 10, оттенок пропадает, зато в хроме и edge все цвета меняются.
                Потому что после перезагрузки они вообще дают непредсказуемый результат. Я еще продолжу эксперимент, пока мнение не выработал.


          1. IKStantin
            19.11.2021 18:51

            Хотя нет. Фотошоп смещает оттенок меньше хрома. Пытаюсь сам понять что происходит