Цветосмеситель
Сервис для подбора палитры цветов путем нахождения промежуточныx значений между двумя заданными
|
Задайте граничные цвета или выберите их из «безопасной» палитры справа.
Определите количество промежуточных смесевых цветов.
Нажмите кнопку замеса и получите палитру качественно замешанных красок.
Укажите цвета для смешивания HEX-кодом или выберите из палитры нажав на блок цвета. Смешанный цвет отображается в четырёх форматах: HEX, RGB, HSL и CMYK.
🎨 Режим смешивания — {{mode}}
RGB, по рямой цветового круга
HSL, по дуге цветового круга
Есть две модели смешивания: адитивное и субтрактивное смешение цветов. Можно почитать тут https://creativshik.com/pochemu-vret-monitor/
Адитивное будет так (оно «работает» при световом смешивании лучей, в некоторых графических программах):
r = (r1 + r2 ) / 2;
g = (b1 + b2 ) / 2;
b = (b1 + b2 ) / 2;
Cубтрактивное
r = // TODO:
g =
b =
Второе «смешивание» цветов похоже на привычное смешивание «акварельных красок» на белом листе. Ещё такое смешивание можно включить в Corel Draw.
Адитивное — «приближает» цвета к чёрному. А субтрактивное — к белому.
Если стоит задача определить «ближайший» цвет,
то используется сумма rgb c коефициентами
Q = r * Kr + g* Kg + b*Kb;
Где Q- будет «вес» по которому можно определить схожесть. этой формулой переводят изображение в чёрнобелое. Для разных преобразований используют разные коефициенты. Стандартные для ч/б где-то видел — найду запишу.
Коефициенты нашёл, вот
Y=0.299*R+0.587*G+0.114*B (В.Порев «Компьютерная графика», BHV, 2002г. —
страница 41.)Y= 0.2125R + 0.7154G + 0,0721В (Фотошоп ссылка )
При попытке вставить коефициенты — они в формуле сокращаются, т.е. для Y(R=255,G=0,B=0)=76,5 , Y(R=0;G=255;B=0)=150,45. Средний цвет будет (128,128,0), но и средняя яркость будет тоже средней — 113,48. Если вы хотите «поднять» яркость до max(Y(цвет1),Y(цвет2)) то вы можете пересчитать цвет, учитывая формулу приведённую выше.
Если у вас задача «не потерять яркость», тогда ставим задачу — сохранить максимальную яркость.
Y(Red=255) = 76,5 Y(Green=255) = 150,45, Y=(Red+Green) = 113,48;
t = Ymax / Y = 150,45/113,48 = 1,325
Тогда (адитивное смешение):
r` = (r1 + r2)*t/2 = (255 + 0)*1,325/2 = 170
g` = (g1 + g2)*t/2 = (0 + 255)*1,325/2 = 170
b` = (b1 + b2)*t/2 = (0 + 0)*1,325 / 2 = 0
Y(R=170,G=170,B=0) = 150,45
Для субтрактивного смешения можно написать аналогичную формулу. Можно так же в цикле прибавлять еденицу — выйдет похожее значение (R=169,G=127,B=42). Внизу пример, сначала R (255,0,0), потом результат «затемнённый» R+G (128,128,0), Потом скорректированый по яркости (170,170,0), потом сделаный инкрементом (169,127,42). Потом зеленый (0,255,0)
И последнее, ставьте проверки что б компонента не выходила за пределы [0,255], если меньше 0 то присваивать 0, если более 255 то ставить 255.
Типичный подход к усреднению цветов RGB — сложить все значения красного, зеленого и синего и разделить каждое на количество пикселей, чтобы получить компоненты окончательного цвета. Есть способ лучше! Вместо того, чтобы суммировать компоненты цвета RGB, вместо этого суммируйте их квадраты.
- Как комбинировать цвета RGB?
- Как найти средний цвет изображения?
- Как найти средний шестнадцатеричный цвет?
- Как найти среднее значение RGB изображения в Python?
- Как вы складываете изображения RGB?
- Как смешать два цвета вместе?
- Как вы рассчитываете RGB?
- Какой средний цвет Вселенной?
- Как узнать яркость изображения?
- Как преобразовать шестнадцатеричные коды в RGB?
- Что такое смешивание цветов?
- Какой цвет делают красный и зеленый?
Как комбинировать цвета RGB?
Чтобы начать микширование в RGB, представьте каждый канал как ведро с красной, зеленой или синей краской. При 8 битах на канал у вас есть 256 уровней детализации для того, сколько этого цвета вы хотите смешать; 255 — это весь ковш, 192 = три четверти, 128 = половина ковша, 64 = четверть ковша и т. Д.
Как найти средний цвет изображения?
Обычный метод получения среднего статистического значения каждого цветового канала в изображении довольно тривиален:
- Загрузить в пикселе.
- Распаковать отдельные цветовые каналы.
- Суммируйте значения канала в аккумулятор.
- Когда вы просуммируете их все, разделите эти суммы на общее количество пикселей.
Как найти средний шестнадцатеричный цвет?
Чтобы вычислить среднее значение шестнадцатеричной строки, вам необходимо:
- Преобразуйте шестнадцатеричную строку в целое число (что-то похожее на parseInt (‘0000ff’, 16))
- Разделить компоненты цвета.
- Рассчитайте среднее значение для каждого цветового компонента.
- Восстановите окончательное значение из цветовых компонентов.
Как найти среднее значение RGB изображения в Python?
Использовать PIL. Изображение. Изображение. getpixel () для возврата значений RGB пикселя
- filename = «образец.jpg «
- img = Изображение. открыть (имя файла)
- img. show () Показать изображение.
- цвета = img. getpixel ((320,240)) Получить значения RGB по координате x = 320, y = 240.
- печать (цвета)
Как вы складываете изображения RGB?
Используйте следующие инструкции для укладки файлов FITS:
- Запустите DSS и выберите Открыть файлы изображений.
- Выберите пять файлов Luminance (имена файлов с _l_ в них)
- Нажмите «Проверить все».
- Нажмите «Сгруппировать проверенные изображения».
Как смешать два цвета вместе?
Сделайте первый шаг
Когда у вас есть два цвета, которые вы хотите смешать с картиной, перемещайте кисть назад и вперед от одного цвета к другому и обратно. Делайте это зигзагообразным движением, как будто вы рисуете букву Z. У вас может возникнуть паника, когда вы впервые начнете смешивать.
Как вы рассчитываете RGB?
Типичный подход к усреднению цветов RGB заключается в сложении всех значений красного, зеленого и синего цветов и делении каждого на количество пикселей, чтобы получить компоненты окончательного цвета.
Какой средний цвет Вселенной?
И цвет Вселенной … Бледно-бирюзовый. Errrr, сделай это бежевым. Ранее в этом году астрономы из Университета Джонса Хопкинса произвели фурор на заседании Американского астрономического общества, когда объявили, что средний свет Вселенной — бирюзовый.
Как узнать яркость изображения?
4 ответа
- Преобразование изображения в оттенки серого, возврат средней яркости пикселей. …
- Преобразование изображения в оттенки серого, возврат RMS яркости пикселей. …
- Среднее количество пикселей, затем преобразование в «воспринимаемую яркость». …
- RMS пикселей, затем преобразовать в «воспринимаемую яркость». …
- Рассчитайте «воспринимаемую яркость» пикселей, а затем верните среднее значение.
Как преобразовать шестнадцатеричные коды в RGB?
Первое значение
- Возьмите первое число 220 и разделите на 16. 220/16 = 13.75, что означает, что первая цифра шестизначного шестнадцатеричного цветового кода — 13, или D.
- Возьмите остаток от первой цифры, 0.75, и умножьте на 16. 0.75 (16) = 12, что означает, что вторая цифра шестизначного шестнадцатеричного цветового кода — 12, или C.
Что такое смешивание цветов?
Смешивание — это техника рисования, при которой два разных цвета слегка смешиваются вместе во влажном состоянии, обеспечивая плавный переход от одного цвета к другому. Цвет перехода будет продуктом двух смешанных цветов (i.д, если вы смешиваете синий с желтым, цвет перехода будет зеленым).
Какой цвет делают красный и зеленый?
Если все три основных цвета света смешаны в равных пропорциях, результат будет нейтральным (серый или белый). Когда красный и зеленый свет смешиваются, результат становится желтым.
I have 2 string representations of colors (ex: «#FFFFFF
» and «#000000
«) and I am looking for a way to get the median color of these two colors programmatically. The color I call «median» would be the color that meets these two in the center.
I need this in order to draw a gradient in 2 steps :
- 1 gradient from the first color to the median
- 1 gradient from the median to the second color
So that it looks like 1 gradient from the first to the second color, which I cannot do.
How can I achieve that?
pavel
26.4k10 gold badges43 silver badges61 bronze badges
asked Jul 23, 2014 at 12:16
3
I would process each RGB component separately. You can parse the hex into a number using Long.valueOf(). Average your two values (rounding as needed) and then going to back to hex using Long.toString() padding out to two digits.
Some example code that I havn’t tested:
String colour1 = "#FFFFFF";
String colour2 = "#000000";
StringBuilder result = new StringBuilder("#");
for (int i=0;i<3;i++) {
String h1 = colour1.substring(i*2+1, 3+(i*2));
String h2 = colour2.substring(i*2+1, 3+(i*2));
long l1 = Long.parseLong(h1, 16);
long l2 = Long.parseLong(h2, 16);
long mid = (l1 + l2) / 2; //truncating not rounding
String midStr = Long.toString(mid, 16);
if (midStr.length() == 1) {
result.append("0");
}
result.append(midStr.toUpperCase());
}
answered Jul 23, 2014 at 12:26
brainbrain
5,4861 gold badge26 silver badges29 bronze badges
0