Safari отображает неверный цвет в соответствии с цифровым измерителем цвета

У меня есть следующий фрагмент HTML, открытый в Safari. Цифровой измеритель цвета сообщает о цвете как #FEDC53.

<!DOCTYPE html>
<html>
<head>
    <title>Broken Colors?</title>
</head>
<body style="background-color: #FFDD44">
Hello, World!
</body>
</html>

Safari отображает неправильный цвет? Или Digital Color Meter показывает неверный цвет? Как мне узнать? Как это исправить?

введите описание изображения здесь

Сравнительный истинный образец FFDD44 со встроенным профилем sRGB.

введите описание изображения здесь

На этом снимке мой измеритель показывает F8DE5A в исходном режиме, FFDE44 в sRGB на откалиброванном мониторе sRGB. Я добавил образец настоящего FFDD44 со встроенным профилем sRGB для сравнения. [которое также теперь читается как FFDE44, предполагая, что пришло время перекалибровать;) Откалиброван ли ваш монитор, и если да, то до чего?

Ответы (2)

Цифровой цветной монитор работает правильно.

Я создал вашу тестовую страницу и отобразил ее в Google Chrome v53.0.2785.143, и она сообщила FFDD44.

На той же странице в Safari для меня было указано F4E14F. Глядя на них рядом друг с другом, они даже не похожи на один цвет. (На снимке экрана Chrome — это внешнее окно, а Safari — внутреннее.)

введите описание изображения здесь

Судя по всему, причина в гамма-коррекции в браузере. См. страницу гамма-теста . Эта страница отображается правильно (в том смысле, что каждый блок имеет сплошной цвет) в Safari версии 9.1.3, тогда как в Chrome версии 53.0.2785.143 она отображается неправильно. Смотрите скриншоты ниже. Судя по информации на странице «Гамма-тест», Safari правильно корректирует гамма-коррекцию цветов CSS.

введите описание изображения здесь введите описание изображения здесь

Хороший ответ. Что-то меня немного озадачивает [недостаточно для отдельного вопроса ;) Мой экран аппаратно откалиброван в sRGB. Все значения на этой тестовой странице находятся в пределах 1 для внутренних и внешних цветов, если я использую sRGB в DCM. Если я использую Native, они намного дальше. Полезен ли Native только для неоткалиброванного монитора, полагаясь на профиль по умолчанию?
Похоже, Chrome теперь правильно исправляет профили ICC (проверено на версии 77). Теперь он показывает те же скорректированные значения цвета, что и Safari.
@Tetsujin «Полезен ли Native только для неоткалиброванного монитора, полагаясь на профиль по умолчанию?» Довольно много. См. Apple.stackexchange.com/questions/256995/…

Что происходит, так это то, что цифровой измеритель цвета (и все цветовые пипетки) считывает значение цвета ПОСЛЕ того, как оно было настроено для цветового профиля ICC вашего дисплея. Видите, как он показывает «Цветной ЖК-дисплей» в правом нижнем углу? Несмотря на общее название, это цветовой профиль ICC специально для Macbook.

Вот схема потока данных:

#FFDD44 (original)
#FEDC53 (adjusted for Color LCD display profile)

Термин «Отображать собственные значения» вводит в заблуждение, поскольку звучит так, как будто он будет отображать исходные значения, но это не так. Судя по всему, цветовые капельницы не могут получить исходные значения. Итак, есть 2 решения:

1. Быстрое и грязное решение

Измените цифровой измеритель цвета на режим «Отображение в sRGB». Что это делает, так это повторно конвертирует скорректированное значение в sRGB (при условии, что это цветовое пространство исходного изображения). Проблема с этим связана с ошибками двойного преобразования и округления, иногда вы не получите обратно точное исходное значение! (В этом случае было то же самое, но если вы попробуете больше цветов, вы обнаружите, что некоторые из них немного отличаются).

#FFDD44 (original)
#FEDC53 (adjusted for Color LCD display profile)
#FFDD44 (convert back to sRGB)

2. Точное решение

Если вы хотите гарантировать точные исходные значения, вам следует установить для параметра Digital Color Meter значение «Отображать исходные значения», а затем изменить файл System Preferences > Displays > Color > sRGB. Убедитесь, что цифровой измеритель цвета теперь показывает «sRGB...» в нижнем правом поле. Поскольку это соответствует цветовому пространству исходного источника, корректировка не выполняется, поэтому «Отображать собственные значения» всегда будут точными исходными значениями. (Впоследствии вы должны не забыть изменить его обратно на «Цветной ЖК-дисплей». Или, если вам все равно, оставьте его в «sRGB».)

#FFDD44 (original)

(no adjustment since display profile sRGB matches the original color space)

Смотрите этот ответ для более подробной информации.

Я люблю управление цветом... или нет ;) Спасибо за объяснение. Я протестировал настройку дисплея на sRGB, и да, цифры совпали — это выглядело ужасно. но номера совпали. Вернемся к моему откалиброванному профилю, и они почти совпадают [в пределах 1] с sRGB на измерителе, хотя это выглядит намного лучше. Я обязательно спрошу вас обо всех моих проблемах с цветом ;-)