Tengo 2 colores
#a1a2a4
- negro (
#000000
) - blanco (
#ffffff
)
Ahora necesito saber cuánta opacidad (en porcentaje) debo aplicar al segundo color (negro) contra un fondo del tercer color (blanco) para lograr un color "más cercano" (según lo determinado por el ojo) al primero. color ( #a1a2a4
).
¿Cómo hago para hacerlo?
color
transparency
Pacerier
fuente
fuente
gray
tono más cercano al color especificado, ¿correcto?Respuestas:
Este caso es más o menos simple (se trata de blanco y negro).
Después de aplicar el color (# a1a2a4), verifique los niveles de RGB:
Puede ver que tiene aproximadamente 162 (promedio), y sabiendo que puede ir de 0 a 255, solo necesita averiguar el porcentaje:
162 * 100/255 = ~ 63,5%
Ahora, debido a que RGB funciona de manera opuesta en comparación con CMYK (en términos de mezcla de colores, es decir, la mezcla a todo color significa blanco y con la mezcla a todo color CMYK significa negro), el porcentaje real en este caso es la diferencia entre el 100% y el valor que tenemos
100 - 63,5 = 36,5%
Entonces, si aplicas el 36% de opacidad, tendrá este color, solo lo probé.
Por supuesto, en casos con colores más complejos, este método no funciona y no conozco una forma de obtener el porcentaje, haría el clásico ensayo y error.
fuente
La pregunta, si lo entiendo bien, es "¿Cómo calcularías esto programáticamente?" Es matemático sencillo convertir su "color" objetivo en un valor alfa.
Blanco == [1,1,1] o #ffffff o 255,255,255, dependiendo de su aplicación. Negro == [0,0,0], etc.
Entonces: normalice el valor objetivo (en este caso, es .6314), reste de 1 y aplique a la capa negra como un valor alfa. Puede hacer este canal a la vez y promediar los resultados, pero ¿por qué molestarse, ya que su color es indistinguible (a simple vista) de un gris neutro # a1a1a1. (Las cosas se vuelven más complejas si hay un tono visible, ya que los canales tendrán valores diferentes, pero se aplica el mismo principio).
fuente
Una variante ligeramente más rápida de prueba y error:
Cree su color hexadecimal en Photoshop en un documento CMYK y observe los valores CMYK. Tengo 39/32/31/1.
Crea dos capas, la superior negra y la inferior blanca.
Abra la ventana de información. Por separado, abra la ventana Capas.
Juega con la opacidad de la capa negra. Use el cuentagotas sobre su color y verifique en la ventana de información para ver qué tan cerca se está acercando. Esto principalmente le ahorra el tiempo de cambio de opacidad - aplanar - verificar color - deshacer aplanar.
fuente
Dados los colores de primer plano y de fondo (valores uniformes en los canales R, G y B), no puede lograr un color no uniforme
#a1a2a4
cambiando la opacidad porque la opacidad afecta a todos los canales a la vez. Sin embargo, puede lograr un color "lo suficientemente cercano"#a1a1a1
configurando la opacidad del negro en0.37
. Aquí está la herramienta que utilicé:http://colorizer.org/
#fff
#000
fuente
Encontrar esta fórmula es un gran ejercicio en álgebra lineal. Usando RGB y álgebra lineal se me ocurrió esta matriz M. Si desea combinar RGBred = (237,32,36) y RGBblue = (60,84,165) donde la capa inferior es 100% de opacidad y la capa superior es 50% opacidad luego multiplica Mv donde M es la matriz de abajo y v = (237,32,36,60,84,165). Obtenemos Mv = (157.777,71.444,107.444).
El valor real es (159,71,103), así que estamos bastante cerca, pero hay algún error, probablemente porque estaba usando valores redondeados para calcular M y / o porque quizás no usa RGB sino alguna otra escala para calcular la transparencia aplastamiento. Probablemente podría obtener una matriz más precisa utilizando un enfoque de tipo de mínimos cuadrados, pero era demasiado vago.
La matriz que tengo MI es
fuente