У меня 2 цвета
#a1a2a4
- черный (
#000000
) - белый (
#ffffff
)
Теперь мне нужно знать, какую непрозрачность (в процентах) я должен применить ко второму цвету (черному) на фоне третьего цвета (белого), чтобы получить цвет, «самый близкий» (как определено глазом) к первому цвет ( #a1a2a4
).
Как мне это сделать?
color
transparency
Pacerier
источник
источник
gray
по цвету он был ближе всего к указанному, верно?Ответы:
Этот случай более или менее прост (вы имеете дело с черным и белым).
После применения цвета (# a1a2a4) проверьте уровни RGB:
Вы можете видеть, что он имеет приблизительно 162 (в среднем), и, зная, что он может быть от 0 до 255, вам просто нужно узнать процент:
162 * 100/255 = ~ 63,5%
Теперь, поскольку RGB работает в противоположном направлении по сравнению с CMYK (с точки зрения смешивания цветов, то есть полного смешения цветов означает белый, а с полным смешением цветов CMYK - черный), фактический процент в этом случае представляет собой разницу между 100% и значением что мы получили:
100 - 63,5 = 36,5%
Так что, если вы примените 36% непрозрачности, у него будет этот цвет, я только что проверил его.
Конечно, в случаях с более сложными цветами этот метод не работает, и я не знаю, как получить процент, я бы сделал классический метод проб и ошибок.
источник
Вопрос, если я правильно понимаю: «Как бы вы рассчитали это программно?» Это простая математика, чтобы преобразовать целевой цвет в альфа-значение.
Белый == [1,1,1] или #ffffff или 255,255,255, в зависимости от вашего приложения. Черный == [0,0,0] и т. Д.
Итак: нормализуйте целевое значение (в данном случае 0,6314), вычтите из 1 и примените к черному слою как альфа-значение. Вы можете делать это по одному каналу за раз и усреднять результаты, но зачем беспокоиться, так как ваш цвет неотличим (для глаз) от нейтрально-серого # a1a1a1. (Все становится более сложным, если есть видимый оттенок, поскольку каналы будут иметь разные значения, но применяется тот же принцип.)
источник
Немного более быстрый вариант проб и ошибок:
Создайте свой шестнадцатеричный цвет в Photoshop в документе CMYK и посмотрите на значения CMYK. Я получаю 39/32/31/1.
Создайте два слоя: верхний черный и нижний белый.
Потяните вверх информационное окно. Отдельно откройте окно слоев.
Поиграйте с непрозрачностью черного слоя. Используйте пипетку на свой цвет и проверьте в информационном окне, чтобы увидеть, как близко вы подходите. Это в основном экономит время изменения непрозрачности - выравнивание - проверка цвета - отмена выравнивания.
источник
Учитывая ваши цвета переднего плана и фона (одинаковые значения для каналов R, G и B), вы не можете добиться неоднородного цвета
#a1a2a4
путем изменения непрозрачности, потому что непрозрачность влияет на все каналы одновременно. Однако вы можете добиться «достаточно близкого» цвета#a1a1a1
, установив непрозрачность черного цвета на0.37
. Вот инструмент, который я использовал:http://colorizer.org/
#fff
#000
источник
Найти эту формулу - отличное упражнение в линейной алгебре. Используя RGB и линейную алгебру, я придумал эту матрицу M. Если вы хотите объединить RGBred = (237,32,36) и RGBblue = (60,84,165), где нижний слой имеет непрозрачность 100%, а верхний слой - 50%. Затем непрозрачность умножить Mv, где M - матрица ниже и v = (237,32,36,60,84,165). Мы получаем Mv = (157,777,71,444,107,444).
Фактическое значение - (159,71,103), поэтому мы довольно близки, но есть некоторая ошибка - возможно, либо потому, что я использовал округленные значения для вычисления M, и / или потому, что, возможно, он не использует RGB, но какой-то другой масштаб для вычисления прозрачности уплощение. Возможно, я мог бы получить более точную матрицу, используя подход типа наименьших квадратов, но я был слишком ленив.
Матрица МИ получила это
источник