Как заставить цвет выглядеть одинаково на разных фонах?

17

Фон по цветовосприятию:

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

Это известно как эффект контраста , проиллюстрированный ниже - центральные прямоугольники идентичны:

введите описание изображения здесьИсточник: Викимедиа

Иллюстрация (и отчет) НАСА делает эффект цвета фона еще более очевидным:

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

введите описание изображения здесьИсточник: НАСА Исследовательская лаборатория использования цвета

(Обратите внимание, что два самых верхних цвета на втором изображении выглядят одинаково, но на самом деле они совершенно разные.)


А как насчет веб-дизайна?

Мой вопрос касается веб-дизайна, в частности, в данном случае, цвета текста ссылки на разных фонах.

Для данного цвета текста, как можно найти дополнительный цвет, чтобы он выглядел одинаково на определенном фоне?


Давайте рассмотрим пример для этого вопроса:

Рассмотрим мой пример ниже, с желтым текстом #FFF000на следующих фонах:

  • белый #FFFFFF,
  • черный #000000,
  • и серый #555555.


Сравните цвета на разных фонах для текста веб-дизайна


Как и ожидалось, не выглядит так же. ( Просмотрите и скачайте файл .PSD здесь. )

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

Можно ли как-то рассчитать этот идеальный цвет на основе Hex, RGB или другой системы? Вот в чем суть этого вопроса, так как он будет гораздо более эффективным, чем ручное приближение.

Baumr
источник
Вам нужно будет использовать желтые. Обратите внимание, что в ваших примерах они использовали цвета, похожие на те, которые они пытаются заставить выглядеть иначе.
Ханна
2
@ Йоханнес, что ты имеешь в виду?
Баумр
В вашем первом примере использовались все оттенки серого. Во втором примере ваш фиолетовый цвет стал более синим благодаря использованию очень яркого фиолетового цвета. Тогда в своем желтом примере вы жмете белых, серых и черных. Итак, я хочу сказать, что вам нужно использовать желтые цвета, чтобы они выглядели одинаково на разных фонах.
Ханна
Мне трудно объяснить это, я прошу прощения.
Ханна
1
Дополнительные ссылки: en.wikipedia.org/wiki/Same_color_illusion en.wikipedia.org/wiki/Color_constancy
гонки за легкость с Моникой

Ответы:

10

Кажется, вы ищете аналог дополнительных цветов , но в пространстве легкости, а не в оттенке . Насколько я могу судить, такого общего отображения не может быть.

Предположим, вы можете компенсировать эффект, предполагая линейную корреляцию между фоном и передним планом, так что, когда фон темнеет, текст на переднем плане осветляется на ту же величину. Я предполагаю, что оттенок остается фиксированным. Всегда будет средняя точка, в которой фон и передний план имеют один и тот же цвет.

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

По той же причине я не вижу, чтобы существовало какое-либо достаточно простое отображение, даже с потерями.

Гонки легкости с Моникой
источник
1
Чтобы решить эту проблему, я думаю, что нам нужно построить модель (среднего) человеческого глаза и найти наилучшее соответствие, используя генетический алгоритм
Baumr
1
@Baumr: может быть хорошая кандидатская диссертация :)
Легкость гонок с Моникой
0

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

Дайте мне знать, если эти два набора патчей выглядят одинаково на черно-белых строках:

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

Поскольку то, как эти пятна выглядят поверх нейтрально-серого, изображено на этой картинке:

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

Я использовал режим смешивания слоев GIMP под названием Grain Extract / Merge, который позволил мне найти самый светлый серый цвет путем извлечения нейтрального пятна из другого, а затем самого темного путем слияния двух из них вместе. Другими словами: я нашел двух серых, аддитивное усреднение которых является нейтральным.

С цветом на черном или белом фоне вы можете использовать Grain Merge, чтобы найти усредненный по аддитиву цвет, а с помощью Grain Extract - дополнительный для последнего.

РЕДАКТИРОВАТЬ: проверить это. Вы можете обнаружить, что эти желтые цвета выглядят одинаково.

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

Marco_O
источник