Pregunta

En Photoshop, puede configurar el modo de mezcla de una capa para ser "Hue". Si esa capa es, por ejemplo, se llena con azul, entonces parece tomar la capa a continuación y la hace todo azul donde exista un color no blanco.

Me pregunto qué es lo que realmente está haciendo. Si tengo una capa de fondo con un píxel AarrggBB y la capa en la parte superior de la que se configura en el modo de mezcla "Hue" y hay un píxel AarrggBB en esa capa, ¿cómo se combinan los dos valores para dar el resultado que vemos?

No solo cae el RRGGBB de la capa a continuación. Si hubiera hecho eso, se colorearía blanco y negro también. Tampoco permitiría a las variaciones de color.

Si un píxel de fondo es 0xff00ff00 y la capa de tono correspondiente Pixel es 0xFF0000FF, entonces supongo que el resultado final será solo 0xFF0000FFF porque el FF Blue reemplaza al verde FF. Pero, si el píxel de fondo es 0x55112233 y la capa de tono Pixel es 0xFF0000FFF, ¿cómo se produce con la sombra del azul que aparece?

La razón por la que pregunto es que me gustaría tomar varias imágenes y cambiar el tono de la imagen programáticamente en mi aplicación. En lugar de almacenar 8 versiones diferentes de la misma imagen con diferentes colores, me gustaría almacenar una imagen y colorearla según sea necesario.

¿Fue útil?

Solución

Encontré un algoritmo para convertir RGB a HSV aquí: http://www.cs.rit.edu/~ncs/color/t_convert.html

Por supuesto, en la parte inferior de esa página menciona que el objeto de color Java ya tiene métodos para convertir entre RGB y HSV, por lo que acabo de usar eso.

Otros consejos

He estado investigando una manera de replicar ese modo de mezcla en JavaScript / Canvas, pero solo he llegado con el modo de filtro / mezcla "coloree". (Ejemplos a continuación)

coloree algoritmo:

  1. Convierte los colores de RGB a HSL;
  2. cambia el valor del tono a la deseada (en mi caso 172⁰ o 0.477);
  3. Revertir la actualización HSL a RGB

    NOTA: Esto está bien en el escritorio, pero que es notablemente lento en un teléfono inteligente, encontré.

    Puede ver la diferencia comparando estas tres imágenes. Original:

    Imagen original

    Colorizar:

    resultado con mi algoritmo El algoritmo de "mezcla" de Fireworks "Fireworks" (que creo que es lo mismo que Photoshop):

    Fireworks "Blend Hue" Algorithm

    El filtro coloree puede ser un buen sustituto.

    Pregunta de conversión RGB / HSL

    Hue / Chroma y HSL en Wikipedia

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top