Banner

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.