Logo de islavisual
Isotipo de islavisual IslaVisual
imagen de sección

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.

Sobre el autor

Imagen de Pablo Enrique Fernández Casado
Pablo Enrique Fernández Casado

CEO de IslaVisual, Manager, Full Stack Analyst Developer y formador por cuenta ajena con más de 25 años de experiencia en el campo de la programación y más de 10 en el campo del diseño, UX, usabilidad web y accesibilidad web. También es escritor y compositor de música, además de presentar múltiples soft kills como la escucha activa, el trabajo en equipo, la creatividad, la resiliencia o la capacidad de aprendizaje, entre otras.

Especializado en proveer soluciones integrales de bajo coste y actividades de consultoría de Usabilidad, Accesibilidad y Experiencia de Usuario (UX), además de ofrecer asesoramiento en SEO, optimización de sistemas y páginas web, entre otras habilidades.