Los parámetros dados son r, g, b de dos colores.¿Cómo se multiplican dos colores en javascript?
¿Cómo puedo multiplicarlos? (Como la mezcla de mode-> multiplicarse en Photoshop)
Ejemplo:
color1: 0255255
color2: 255,255,0
multiplicado: 0,255,0
Los parámetros dados son r, g, b de dos colores.¿Cómo se multiplican dos colores en javascript?
¿Cómo puedo multiplicarlos? (Como la mezcla de mode-> multiplicarse en Photoshop)
Ejemplo:
color1: 0255255
color2: 255,255,0
multiplicado: 0,255,0
Basado en la sencilla fórmula se multiplican, aquí es una función javascript que deben trabajar para 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;
}
aquí es un violín usando colores de fondo se puede jugar con: http://jsfiddle.net/unrLC/
preguntando ... ¿por qué la declaración poco ortodoxa de 'i'? – Ross
Es un estilo de codificación: todas las variables declaradas a la cabeza del alcance. Antes de ES6 'const' y' let', solo se podían tener variables con alcance en una función o global, las declaraciones izadas permitían hacer referencia a una variable antes de que se inicializara, y la misma declaración se podía hacer varias veces. En general, esto se suma a una forma fácil de introducir errores. Para abordar estos problemas, muchas personas eligen restringirse a declarar todas las variables que aparecerían en un ámbito como la primera declaración en la función. – Semicolon
Usted traduce los componentes de color a un valor entre 0 y 1, luego es una simple multiplicación. Thanslate el resultado de nuevo a la gama de 0 a 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
Here's the formula for multiplying colors (así como otras fórmulas modo de mezcla).
fórmula: Resultado = color (Color superior) * (color de fondo)/255
Puede implementar esta muy fácilmente en JavaScript.
var newRed = red1 * red2/255;
var newGreen = green1 * green2/255;
var newBlue = blue1 * blue2/255;
supongo que el objetivo es multiplicar rangos de color de 0 a 255. reducirlos a una gama de [0, 1], los multiplicaré, y expandir de nuevo:
color_new = ((color_1/255) * (color_2/255)) * 255
color_new = color_1 * color_2/255
u tiene que utilizar la multiplicación de matrices para que –
Favor mostrar su código para darnos una idea de la estructura de datos que lucha con. ¿O pides el operador de multiplicación '*'? – Bergi
No conozco el método de este efecto. –