Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.14.86] |
|
Сообщ.
#1
,
|
||||||||||
|
Всем прива!
Запутался я в этих формулах преобразований, прошу хэлп. Задача у меня вот какая: Пусть цвету ████ #DADADA соответствует ████ #90D12D, нужно найти соответствия оттенков зелёного для:
На сколько я немного почитал, что простое увеличение на какую-то одну величину для R, G и B неправильно, ибо составляющие вносят разные вклады в результирующий цвет. По инету даже формула ходит ((0.2989 * R) + (0.5870 * G) + (0.1141 * B)), но это прямое преобразование цвета в градации серого. А мне по образцам серого нужно получить оттенки цвета - т.е. задача обратная. Как это посчитать? Туплю, хелп! |
Сообщ.
#2
,
|
|
|
Цитата Majestio @ простое увеличение на какую-то одну величину для R, G и B неправильно, ибо составляющие вносят разные вклады в результирующий цвет. Нужно умножать, а не добавлять. Пусть новый серый - #8D8D8D, тогда #90D12D покомпонентно умножаешь на #8D и делишь на #DA. |
Сообщ.
#3
,
|
||||||||||||||||
|
Пробуем:
Нет, что-то не то, что хотелось Градация серого - начинается с черного, заканчивается белым, а внутри оттенки серого. С зеленым цветом должно быть так-же, начинаться с черного, заканчивается белым - внутри оттенки зеленого. Ну и в моем случае немного задача усложняется тем, что берется не чисто зеленый цвет, а где-то ближе к салатовому. ЗЫ: При расчетах я дроби округлял - меньше 0.5 к меньшему, соотв. больше - к большему целому. |
Сообщ.
#4
,
|
|
|
Цитата Majestio @ заканчивается белым Это надо было сразу уточнить - это совсем не очевидно. Можно по предыдущей формуле считать тогда, когда серый темнее опорного, там так и уйдёт к чёрному. А когда светлее, считать как-то так: RNew = 255 - (255 - r) * (255 - Gray) / (255 - #DA) Gray - это новое значение компоненты серого (вместо #DA). Это расчёт для красной компоненты, так сделать для каждой компоненты. |
Сообщ.
#5
,
|
|
|
Цитата Нет, что-то не то, что хотелось А чего, собственно, хотелось-то? Как задается отображение одного цвета на другой? По какой формуле можно определить, попали в цвет или не попали? Цитата С зеленым цветом должно быть так-же, начинаться с черного, заканчивается белым - внутри оттенки зеленого. Смутно подозреваю, что речь идет о цвете в модели HSL с фиксированной цветностью и насыщенностью и с переменной яркостью. Но тогда непонятно, почему #DADADA соответствует #90D12D, ведь у них яркости разные. |
Сообщ.
#6
,
|
|
|
Цитата AVA12 @ Но тогда непонятно, почему #DADADA соответствует #90D12D, ведь у них яркости разные. Ну опишу предметное применение: Есть к примеру какой-то рисунок/узор в градациях серого. У меня есть какой то "опорный" цвет (пусть и не той яркости). Мне на рисунке нужно самому темному цвету сопоставить этот опорный цвет, и по всем более ярким цветам рисунка - сгенерировать оттенки "опорного". Или не совсем понятно? Добавлено Цитата Mikle @ Это расчёт для красной компоненты, так сделать для каждой компоненты. Пасип, буду пробовать ... |
Сообщ.
#7
,
|
|||||||||||||||||||
|
Еще раз пробуем:
Супер, то что нужно!!! |