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

Ultima revisión 02/11/2012

SVG Filters: Uso de feComponentTransfer (Componentes de transferencia)

La primitiva feComponentTransfer permite la redefinición independiente de cada uno de los cuatro canales de color: R, G, B, y A (alfa). Permite realizar operaciones como el ajuste del brillo, el contraste, equilibrio de color o umbral través de diferentes funciones que son aplicables a uno o varios canales de una imagen.

El filtro feComponentTransfer se define a través de sus métodos feFuncR, feFuncG, feFuncB y feFuncA que crean y gregan una función de transferencia para cada canal R G B A y, cada una de ellas puede tener, además del indicador de tipo, uno o varios parámetros.

Los cálculos se realizan sobre los valores de color no tratados o premultiplicados. Si los gráficos de entrada se componen de valores de color premultiplicados, se restauran automáticamente a los valores de color no premultiplicados para esta operación. Deshacer y rehacer de la premultiplicación se puede evitar si feFuncA se establece a identity y todos los valores alfa de la fuente gráfico se establecen a 1.)

Entre los tipos de ajuste permitidos se incluyen identity, table, discrete, linear y gamma.

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

TypeDefinición
El componente resultante es el mismo que el original.
Se define como una función de paso determinado entre los valores dados en el atributo tableValues. La lista tiene n valores (es decir, de v0 a VN-1) que identifica la función de paso que consiste en n pasos.
Se puede utilizar para Posterizar una imagen (que es reducirlo a valores de menor color).
Se define como una ecuación lineal que utiliza como parámetros la pendiente y el intercepto.
. Cambiando sólo el atributo slope de los canales R G B podemos gestionar el brillo. De 0 a 1.0 ocurecemos, de 1.0 a 2.0 aumentamos el brillo.
Se define como una interpolación lineal entre los valores dados en el atributo tableValues. La tabla tiene n+1 valores (es decir, de v0 a vn) que especifican los valores de inicio y fin para n regiones de interpolación de tamaño uniforme.
Se define como una ecuación exponencial que utiliza como parámetros la amplitud, el exponente y el offset. Cambiando sólo el exponente de los canales R G B podemos gestionar el contraste con valores mayores que 1.


ParámetroDefinición
Contiene una lista de valores separados por espacios o comas. Si el atributo type se establece a identity, el valor del campo será vacío.
Indica la pendiente de la función lineal. Por defecto, si no se especifica, tiene un valor de 1. En general tendrá un valor numérico excepto para el tipo linear que será una función.
Indica el intercepto de la función lineal. Por defecto, si no se especifica, tiene un valor de 0. En general tendrá un valor numérico excepto para el tipo linear que será una función.
Indica la amplitud de la función gamma. Por defecto, si no se especifica, tiene un valor de 1. En general tendrá un valor numérico excepto para el tipo gamma que será una función.
Indica el exponente de la función gamma. Por defecto, si no se especifica, tiene un valor de 1. En general tendrá un valor numérico excepto para el tipo gamma que será una función.
Indica el desplazamiento de la función gamma. Por defecto, si no se especifica, tiene un valor de 0. En general tendrá un valor numérico excepto para el tipo gamma que será una funció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.