Как умножить два цвета в javascript?
Данные параметры являются r, g, b двух цветов.
Как я могу их умножить? (Как режим смешивания- > умножить в Photoshop)
Пример:
цвет1: 0255255
цвет2: 255,255,0
умножаются: 0,255,0
![example]()
Ответы
Ответ 1
Основываясь на простой формуле умножения, вот функция javascript, которая должна работать для RGB:
function multiply(rgb1, rgb2) {
var result = [],
i = 0;
for( ; i < rgb1.length; i++ ) {
result.push(Math.floor(rgb1[i] * rgb2[i] / 255));
}
return result;
}
Вот скрипка с использованием цветов фона, с которыми вы можете играть: http://jsfiddle.net/unrLC/
![enter image description here]()
Ответ 2
Здесь формула для умножения цветов (а также другие формулы режима смешивания).
Формула: Результат Цвет = (Верхний цвет) * (Нижний цвет)/255
Вы можете реализовать это очень легко в JavaScript.
var newRed = red1 * red2 / 255;
var newGreen = green1 * green2 / 255;
var newBlue = blue1 * blue2 / 255;
Ответ 3
Вы переводите цветовые компоненты в значение от 0 до 1, а затем простое умножение. Перетащите результат обратно в диапазон от 0 до 255:
0, 255, 255 -> 0, 1, 1
255, 255, 0 -> 1, 1, 0
0*1 = 0, 1*1 = 1, 1*0 = 0
0, 1, 0 -> 0, 255, 0
Ответ 4
Я предполагаю, что цель состоит в том, чтобы умножить диапазоны цветов от 0 до 255. Уменьшите их до диапазона [0, 1], умножьте их и снова разверните:
color_new = ( (color_1 / 255) * (color_2 / 255) ) * 255
color_new = color_1 * color_2 / 255