Mezclando dos colores "naturalmente" en javascript
El problema: Quiero mezclar dos colores en javascript y obtener el color resultante. Hay muchas preguntas similares sobre SO, sin embargo, no encuentro nada que realmente funcione correctamente. Sé que mezclar dos pinturas de diferentes colores (pigmentos) y luces dará resultados muy diferentes (http://en.wikipedia.org/wiki/Color_mixing).
Aquí están las preguntas y las soluciones sugeridas que ya he visto e intentado implementar:
1: Mezclando dos vectores de color RGB para obtener resultado.
Así, mezclando colores en RGB. Lo implementé, y en algunos casos funciona, en algunos casos no funciona.
Ejemplo de trabajo: Mezclandored
conyellow
->orange
. ¡Genial!
http://jsbin.com/afomim/1/edit
No funciona el ejemplo: Mezclandoblue
conyellow
->gray
. ¡No muy bien! :)http://jsbin.com/afomim/5/edit
Sé que en la mezcla RGBblue
conyellow
nunca harágreen
, y entiendo por qué.
No encontraremos la respuesta aquí, sigamos adelante.
2: Agregar colores (colores) juntos como pintura (azul + amarillo = verde, etc.)
Intentemos trabajar con los valores CMYK como se sugiere en esta discusión. Mezclandocyan
conyellow
dagreen
:
http://jsbin.com/igaveg/1/edit
pero mezclandoblue
conyellow
resultados enblack
.
http://jsbin.com/igaveg/2/edit -> ¡No funciona!
3: ¿Cómo mezclar colores "naturalmente" con C #?
Una pregunta muy similar. La respuesta más popular sugiere convertir los colores a LAB, y esta solución parece prometedora.
Así que convertí mis colores a LAB. La conversión algo es correcta, lo he probado!
http://jsbin.com/oxefox/1/edit
Ahora tengo los dos colores en LAB, pero ¿cómo mezclarlos?
NOTA Sé que probablemente no encuentre un algo que se mezcle.blue
conyellow
y dará el perfectogreen
, pero espero poder generar algo similar a verde :)