Banner

Ultima revisión 01/11/2012

SVG Filters: Uso de feBlend (Fusionar)

Realiza pixel a pixel una combinación de dos imágenes de entrada. Los modos de fusión son: Normal, Multiplicar (multiply), Pantalla (screen), oscurecer (darken) y aclarar (lighten).

Los atributos in e in2 representan la primera y segunda imagen de entrada para realizar la operación de fusión. Tanto in como in2 contendrán uno de sus valores estándar o podrán tener otra fuente o imagen de entrada definida por el usuario.

BackgroundImage representa una instantánea de la imagen del tapiz bajo la declaración del filtro en el momento en que filter fue invocado.

Modo: 

<?xml version="1.0" standalone="no"?> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 
<svg width="200" height="200" viewBox="0 0 200 200" version="1.1" xmlns="http://www.w3.org/2000/svg">
    <defs>
        <filter id="feBlend">
            <feImage x = "0" y = "0" width = "100%" height = "100%" result = "raster1" xlink:href = "../../img/svg-filters/butterfly_th.jpg"/>
            <feBlend id="feBlend_def" mode="normal" in2="raster1" in="SourceGraphic"/>
        </filter>
    </defs>
    <image x = "0" y = "0" width = "100%" height = "100%" xlink:href = "../../img/svg-filters/paisajes3d.jpg" filter="url(#feBlend)" />
</svg>

Para todos los modos de fusión, el resultado de la opacidad se calcula mediante la siguiente fórmula:

qr = 1 - (1 - q) * (1 - qb)

Las siguientes definiciones son las que se aplican para las fórmulas de composición a continuación presentadas:

cr = Color resultante (RGB) - premultiplicado
qa = Valor de la opacidad de un píxel dado por la imagen A.
qb = Valor de la opacidad de un píxel dado para la imagen B.
ca = Color (RGB) en un píxel dado por la imagen A - premultiplicado.
cb = Color (RGB) en un píxel dado para la imagen B - premultiplicado

ModeDefinición
Permite que el elemento referenciado por in2 sólo sea visible si el elemento referenciado por in contiene transparencia.
El color resultante se calcula a través de la fórmula: cr = (1 - q) * cb + ca.
Resta los valores de brillo de las dos imágenes en cada píxel.
El color resultante se calcula a través de la fórmula: cr = (1-qa)*cb + (1-qb)*ca + ca*cb
Suma los valores de brillo de las dos imágenes en cada píxel.
El color resultante se calcula a través de la fórmula: cr = cb + ca - ca * cb
Extrae o toma el valor más oscuro de las dos imágenes en cada píxel.
El color resultante se calcula a través de la fórmula: cr = Min ((1 - qa) * cb + ca, (1 - qb) * ca + cb)
Extrae o toma el valor más brillante de las dos imágenes en cada píxel.
El color resultante se calcula a través de la fórmula: cr = Max ((1 - qa) * cb + ca, (1 - qb) * ca + cb)

El modo normal es equivalente al over en la primitiva filtro feComposite, coincide con el método de mezcla utilizada por feMerge y coincide con la técnica alfa compositing simple que se usa en SVG para toda la composición exterior de efectos de filtro.