Banner

Ultima revisión 02/11/2012

SVG Filters: Uso de feComposite (Composiciones)

Combina dos imágenes pixel a pixel en un mismo espacio usando el canal alfa de Porter-Duff para realizar las operaciones de composición. Las operaciones son over, in, out, atop, xor, and arithmetic.

Hay que tener en cuenta que, en una cierta medida, la imagen resultante puede aumentar de tamaño, incluso si las dos imágenes se superponen.

La primitiva feComposite puede puede ser utilizada para calcular medias e intersecciones. Además, permite tanto la superposición de imágenes como la mezcla relativa de sus valores de los píxeles. Al igual que feMerge se necesitan dos entradas in y in2. Por defecto, in se establece a SourceGraphic.

El atributo operator puede tomar los valores de over, in, out, atop, xor, and arithmetic. Todos ellos, excepto arithmetic son atributos simples, pero cuando se especifica arithmetic, se invocan a otros cuatro que son k1, k2, k3, k4. Estos pesos se asignan respectivamente a:

  • Un componente que representa el múltiplo de las dos imágenes.
  • El efecto lineal de la primera imagen.
  • El efecto lineal de la segunda imagen.
  • Un intercepto o ajuste del brillo.

Por ejemplo, cuando el operador está en artithmetic si k1 = "0", k2 = "1", k3 = "-1" y k4 = "1", lo que significa es que el SourceGraphic (in) contribuye de manera positiva, el BackgroundImage (in2) contribuye negativamente y el brillo ha sido aumentado.

Combinación: 

<?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>
        <!-- SIN DEFINICIONES NI FILTROS -->
        <!-- IMAGEN ORIGINAL -->
    </defs>
    <image id="feComposite_image" x = "0" y = "0" width = "100%" height = "100%" xlink:href = "../../img/svg-filters/guitar.png" />
</svg>


De todos los operadores e in, probablemente son más útiles.

OperatorDefinición
Permite fusionar basándose en el porcentaje de mezcla de las imágenes (la opacidad, por ejemplo) pero también, permite efectos más complejos.
Limita la presencia de una imagen a la trasparencia de la otra, como un clipPath, pero se realiza como si fuese un patrón.