Primitivas de Filtro de Composición

Estas primitivas componen y combinan dos o más gráficos. Los gráficos que se pueden combinar con estas primitivas pueden provenir de un objeto, de un fondo del dibujo, o de la salida de otra primitiva.

[Nota]¡Atención! Es necesario añadir la etiqueta enable-background

Inkscape presenta un problema cuando se usa uno de estos filtros. Siempre que se utilice una Imagen de fondo o un Alfa de fondo como entrada de uno de estos filtros, la etiqueta enableBackground debe ser añadida en el archivo SVG del dibujo (esta etiqueta le indica a los visualizadores SVG que deben conservar una copia del fondo en memoria). El problema es que Inkscape no añade esta etiqueta de forma automática, excepto cuando se utiliza el cuadro de diálogo Capas para añadir un filtro Mezclar. Por lo tanto, una solución al problema consiste en utilizar el cuadro de diálogo Capas para añadir de forma temporal un filtro Mezclar a una capa; y a continuación eliminarlo. Mediante este truco, aunque el filtro se haya eliminado, la etiqueta permanecerá incluida en el archivo del dibujo.

[Nota]Duplicación del fondo

La especificación del estándar SVG 1.1 presenta un problema cuando un objeto se combina con un fondo que no es completamente opaco. El fondo se incluye en el dibujo dos veces (una vez con la imagen resultado de la combinación, y otra vez como fondo independiente). Hay tres maneras de tratar este problema. La primera es evitar el uso de una Imagen de fondo o de un Alfa de fondo como entrada de un filtro. La segunda manera es sustituir un fondo transparente por un fondo opaco (se puede utilizar la Herramienta Cuentagotas para cambiar un Relleno transparente por un Relleno equivalente opaco [desactivando la selección del parámetro alfa en la barra de Controles de Herramienta]). Y la tercera manera es usar la primitiva de filtro Relleno para crear un fondo blanco opaco e incluir este fondo como primera entrada de la primitiva Combinar (si se utiliza una primitiva Combinar hay que incluir el fondo blanco opaco primero; en cambio, si se utiliza la primitiva Mezclar o la Composición, hay que añadir una primitiva Combinar cuya primera entrada sea la salida del filtro Relleno y cuya segunda entrada sea la salida de la primitiva Mezclar o de la Composición). Esta solución no funciona cuando lo que se quiere es que toda la imagen tenga transparencia. El estándar SVG 1.2 ya ha corregido esta deficiencia.

Fondos transparentes.
En este ejemplo, el círculo rojo se ha combinado con el fondo aplicando la primitiva de filtro Combinar. El color del fondo es negro con una transparencia del 50%. En la figura de la izquierda, la zona afectada por el filtro es demasiado negra. Esto es debido a que el fondo se ha incluido dos veces en el dibujo. En la figura de la derecha, primero se ha rellenado de color blanco la zona del filtro utilizando la primitiva Relleno. Para que esta técnica funcione en Batik y en otros muchos visualizadores SVG, es necesario añadir el atributo color-interpolation-filters="sRGB" en la etiqueta <filter> dentro del archivo SVG del dibujo.

Mezclar

Como su nombre indica, la primitiva de filtro Mezclar mezcla dos objetos solapados, o un objeto con su fondo, haciendo una combinación píxel a píxel usando uno de sus cinco modos de mezcla definidos. Estos cinco modos se describen a continuación. Excepto en el modo Normal, el resultado de la mezcla es independiente del orden de los objetos en el solapamiento.

La definición matemática específica de cada modo de mezcla se da a continuación. En las siguientes expresiones matemáticas, la letra a hace referencia al objeto situado encima, la letra b al objeto que está debajo; c es el valor del parámetro RGB del color del objeto (multiplicado previamente por la opacidad); mientras que q es el valor de la opacidad. Los valores de c y q varían de 0 to 1. Cada uno de los parámetros RGB del color se combina de forma independiente.

  • Normal: El objeto superior y el objeto inferior aparecen como si el filtro no estuviera aplicado. (De hecho, Inkscape elimina la primitiva de filtro Mezclar cuando se selecciona la opción Normal al añadir una mezcla en una Capa desde el cuadro de diálogo Capas.) cr = (1 − qa) × cb + ca.
  • Multiplicar: El objeto superior filtra la luz procedente del objeto inferior o del fondo. (Es como mirar al objeto inferior a través de una transparencia con el color del objeto superior.) Ejemplos: La aplicación de este modo de mezcla en el caso de un objeto azul encima de un objeto rojo da como resultado color negro ya que el objeto azul elimina toda la luz roja procedente del objeto inferior. Si el objeto superior es de color cian y el objeto inferior es de color púrpura, el resultado es azul ya que el objeto cian elimina la luz roja pero deja pasar la luz azul. cr = (1 − qa) × cb + (1 − qb) × ca + ca × cb.
  • Pantalla: El objeto superior añade su luz al objeto inferior. (Como si ambos objetos el superior y el inferior estuvieran siendo proyectados por separado sobre una misma pantalla.) Ejemplos: Un objeto azul sobre un objeto rojo produce un color púrpura. Un objeto cian sobre un objeto púrpura produce color blanco, ya que el color cian contiene verde y azul, y el color púrpura contiene rojo y azul. Por lo tanto, las cantidades presentes de rojo, verde y azul son iguales y el color resultante es blanco. (¿Por qué el resultado no contiene más cantidad de azul? Pues porque tanto el cian como el púrpura ya contienen la máxima cantidad posible de azul.) cr = cb + ca − ca × cb.
  • Oscurecer: El objeto superior oscurece el objeto inferior. cr = Mínimo( (1 − qa) × cb + ca, (1 − qb) × ca + cb ).
  • Aclarar: El objeto superior aclara el objeto inferior. cr = Máximo( (1 − qa) × cb + ca, (1 − qb) × ca + cb ).
Mezclar.
Ejemplos de aplicación de la primitiva de filtro Mezclar. Fila superior: Los cuadrados rojo y azul están rellenos con un Degradado lineal que varía desde una opacidad total hasta una transparencia total, a la izquierda están sobre un fondo blanco y a la derecha sobre un fondo negro. Fila inferior: El cuadrado azul se ha colocado encima del cuadrado rojo, y se les ha aplicado la primitiva Mezclar con los diferentes modos de mezcla.
Mezclar.
Tres círculos solapados entre sí. El mismo modo del filtro Mezclar se ha aplicado individualmente a cada círculo de una fila. Nótese que los círculos están sobre un fondo blanco o negro con una opacidad máxima.
Mezclar.
Este ejemplo muestra la diferencia entre los modos de mezclaPantalla (izquierda) y Aclarar (derecha). Cada uno de los círculos tiene un valor rojo de 128 (50%) y un valor de opacidad de 128 (50%). Si el valor de la opacidad hubiera sido de 255 (100%), las dos figuras serían idénticas.

La primitiva de filtro Mezclar también se puede aplicar a una capa entera desde el cuadro de diálogo Capas. En este caso, la entrada 1 de la primitiva es el objeto seleccionado en ese momento, mientras que la entrada 2 es la Imagen de fondo.

Composición

La primitiva de filtro Composición permite combinar píxel a píxel dos objetos solapados, o un objeto con el fondo, según las reglas de los modos de funcionamiento de la primitiva. Se recomienda ver la introducción de esta sección en relación con los problemas que aparecen cuando se utiliza un fondo como una de las entradas de esta primitiva.

Los posibles modos de funcionamiento de esta primitiva son los siguientes:

  • Por encima: El objeto superior se coloca sobre el objeto inferior. Este modo de funcionamiento es equivalente a la forma normal de solapar entre sí los objetos dibujados.
  • Dentro: El objeto inferior determina la parte del objeto superior que queda visible.
  • Fuera: El objeto inferior determina la parte del objeto superior que queda oculta.
  • Encima: El objeto inferior determina la parte del objeto superior que queda visible. El objeto inferior también es visible.
  • XOR: Las zonas no solapadas de los objetos superior e inferior quedan visibles.
  • Aritmético: Los parámetros de entrada K1, K2, K3 y K4 se utilizan en la siguiente ecuación: resultado = K1 × i1 × i2 + K2 × i1 + K3 × i2 + K4 para determinar la salida de la primitiva. Los factores i1 e i2 son los valores de entrada de los dos objetos de origen.
Filtro Composición.
Ejemplos de los diferentes modos de funcionamiento de la primitiva de filtro Composición. La primera entrada de la primitiva es el cuadrado azul. La segunda entrada, el cuadrado rojo, se ha obtenido del cuadrado azul aplicándole las primitivas de filtro Matriz de Colores y Desvío. En el caso del modo de funcionamiento Aritmético, todos sus parámetros de entrada se fijaron en el valor 0.5.

Combinar

Como su nombre indica, la primitiva de filtro Combinar permite la combinación de dos o más objetos o salidas de otras primitivas de filtro. Funciona colocando en capas un objeto encima de otro, como normalmente se van colocando los objetos dibujados en capas en el orden-z; o en el caso de que haya sólo dos entradas, funciona como la primitiva de filtro Composición en el modo de funcionamiento Por encima.

Cuando esta primitiva Combinar se añade a un filtro complejo, la primitiva se incluye con un nodo de entrada sin conexión. Cada vez que se establece una nueva conexión de entrada en la primitiva, aparece un nuevo nodo sin conexión. Este nodo de entrada vacío no se incluye en la estructura SVG en árbol del filtro.