4D v16

SVG_Filter_ColorMatrix

Inicio

 
4D v16
SVG_Filter_ColorMatrix

SVG_Filter_ColorMatrix 


 

SVG_Filter_ColorMatrix ( objetoSVG {; in ; result} {; tipo {; valores}} ) -> Resultado 
Parámetro Tipo   Descripción
objetoSVG  Ref_SVG in Referencia del objeto SVG
in  Texto in Identifica entrada para el filtro dado primitivo
result  Texto in Ofrece una referencia para el resultado de salida de un filtro
tipo  Texto in Indica el tipo de operación de la matriz
valores  Texto in Valores numéricos de la matriz de transformación
Resultado  Ref_SVG in Referencia para el objeto SVG con nuevos valores de color

El comando SVG_Filter_ColorMatrix aplica una transformación de matriz de color a cada píxel de la imagen fuente pasada en el parámetro objetoSVG para producir un resultado con un nuevo conjunto de valores de color.

En el parámetro in, puede pasar una cadena que coincide con un valor "result" anterior o una de las seis siguientes palabras claves:

  • SourceGraphic: el elemento objetivo (imagen, forma , grupo, etc.) que referencia el filtro. Esta palabra clave representa los elementos gráficos que eran la entrada original en el elemento "filtro".
  • SourceAlpha: el canvas bajo el SourceGraphic. Esta palabra clave representa los elementos gráficos que eran la entrada original en el elemento "filtro".
  • BackgroundImage: el canvas bajo el SourceGraphic. Esta palabra clave representa una instantánea de imagen del canvas bajo la región del filtro en el momento en que se invocó el elemento "filtro".
  • BackgroundAlpha: el canal alfa del canvas bajo el SourceGraphic. Igual que BackgroundImage excepto que únicamente se utiliza el canal alfa.
  • FillPaint: un pseudo-gráfico igual al tamaño de la región de filtro llenado con la propiedad de relleno del elemento objetivo. Esta palabra clave representa el valor de la propiedad 'relleno' en el elemento objetivo para el efecto  filtro.
  • StrokePaint: una pseudo-gráfico igual al tamaño de la región de filtro de llenado con la propiedad de trazo del elemento objetivo. Esta palabra clave representa el valor de la propiedad 'trazo' en el elemento objetivo para el efecto de filtro.

Si no se pasa ningún valor y este es el primer filtro primitiva, entonces el SourceGraphic se utiliza como su entrada. Si no se ofrece ningún valor y esto es un filtro posterior primitivo, a continuación, este filtro primitivo, utilizará el resultado del filtro anterior primitivo como su entrada.

En el parámetro result, pase una referencia para el resultado de la salida de un filtro que puede ser referenciado por el parámetro in en un uso posterior de este comando en el mismo elemento "filtro". Si no se ofrece ningún valor, la salida se encuentra disponible para su reutilización como la entrada implícita para la siguiente primitiva de filtro si ese filtro primitivo ofrece ningún valor para su parámetro in.

En el parámetro tipo, puede especificar el tipo de operación matriz al pasar una de las siguientes palabras:

  • saturate: ajusta la saturación de todos los canales de color RGB utilizando un valor de número real de 0 a 1 que se pasa en el parámetro valores.
  • hueRotate: rota el pixel hue de todos los canales de color RGB el ángulo especificado (en grados) en el parámetro valores,
  • luminanceToAlpha: convierte los canales rojo, verde y azul en un valor de luminancia. Los canales RGB están definidos en negro (0,0,0).)
  • matrix: define el color utilizando la lista de valores pasados en el parámetro valores. Permite el valor de cada canal en la salida a especificar de una combinación de su color existente y canales alfa.

Si no pasa un parámetro tipo, por defecto el efecto es como si un valor de matriz se hubiera especificado.

En el parámetro valores, pase valores numéricos basados en la palabra clave pasada en el parámetro tipo:

  • Con la palabra clave "matrix":  pase una lista de 20 valores de matriz, separados por espacios en blanco y/o una coma.
  • Con la palabra clave "saturate": pase un valor de número real individual (0 a 1). El valor permitido de acuerdo con la especificación es de 0-1, pero muchos navegadores aceptan valores superiores> 1 para permitir el exceso de saturación.
  • Con la palabra clave "hueRotate": pase un valor número real (para indicar los grados de rotación).
  • Con la palabra clave "luminanceToAlpha": no pase un valor numérico. El atributo "valores" no se utiliza con este tipo, lo que descarta el canal alfa y lo reemplaza con valores iguales a la luminancia de la entrada.

Si no pasa un parámetro valores, el comportamiento por defecto depende de la palabra clave pasada en el parámetro tipo:

  • Con la palabra clave "matrix": por defecto se utilizan los valores de la matriz de identidad
  • Con la palabra clave "saturate": por defecto, el valor es 1 (sin cambios).
  • Con la palabra clave "hueRotate": por defecto el valor es 0 (sin cambios).
  • Con la palabra clave "luminanceToAlpha": por defecto, este parámetro no se utiliza.

Nota: bajo Windows, este comando requiere la desactivación previa de Direct2D (ver la constante Direct2D disabled en la descripción del comando SET DATABASE PARAMETER).

Ejemplo  

 C_TEXT($Dom_filter;$Dom_node;$Dom_rect;$Dom_svg;$Txt_matrix)
 
 SVG_SET_OPTIONS(SVG_Get_options?+5)
 
 $Dom_svg:=SVG_New
 
 $Dom_filter:=SVG_Define_filter($Dom_svg;"Matrix")
 $Txt_matrix:=\
 ".33 .33 .33 0 0 "\
 +".33 .33 .33 0 0 "\
 +".33 .33 .33 0 0 "\
 +".33 .33 .33 0 0"
 
 
 $Dom_node:=SVG_Filter_ColorMatrix($Dom_filter;"SourceGraphic";"";"matrix";$Txt_matrix)
 
 $Dom_filter:=SVG_Define_filter($Dom_svg;"Saturate")
 $Dom_node:=SVG_Filter_ColorMatrix($Dom_filter;"SourceGraphic";"";"saturate";"1.5")
  // otra sintaxis para valor
  //$Dom_node:=SVG_Filter_ColorMatrix ($Dom_filter;"SourceGraphic";"";"saturate";String(1,5;"&xml"))
 
 $Dom_filter:=SVG_Define_filter($Dom_svg;"HueRotate90")
 $Dom_node:=SVG_Filter_ColorMatrix($Dom_filter;"SourceGraphic";"";"hueRotate";"90")
 
 $Dom_filter:=SVG_Define_filter($Dom_svg;"LuminanceToAlpha")
 $Dom_node:=SVG_Filter_ColorMatrix($Dom_filter;"SourceGraphic";"";"luminanceToAlpha")
 
 $Dom_rect:=SVG_New_rect($Dom_svg;2;0;797;100;0;0;"none";"coral")
 
 $Dom_rect:=SVG_New_rect($Dom_svg;2;100;797;100;0;0;"none";"coral")
 SVG_SET_FILTER($Dom_rect;"Matrix")
 
 $Dom_rect:=SVG_New_rect($Dom_svg;2;200;797;100;0;0;"none";"coral")
 SVG_SET_FILTER($Dom_rect;"Saturate")
 
 $Dom_rect:=SVG_New_rect($Dom_svg;2;300;797;100;0;0;"none";"coral")
 SVG_SET_FILTER($Dom_rect;"HueRotate90")
 
 $Dom_rect:=SVG_New_rect($Dom_svg;2;400;797;100;0;0;"none";"coral")
 SVG_SET_FILTER($Dom_rect;"LuminanceToAlpha")
 
 SVG_New_text($Dom_svg;"No filter";110;10;"Verdana";60;Bold;-1;"black")
 SVG_New_text($Dom_svg;"Matrix";110;110;"Verdana";60;Bold;-1;"black")
 SVG_New_text($Dom_svg;"Saturate";110;210;"Verdana";60;Bold;-1;"black")
 SVG_New_text($Dom_svg;"HueRotate";110;310;"Verdana";60;Bold;-1;"black")
 SVG_New_text($Dom_svg;"Luminance";110;410;"Verdana";60;Bold;-1;"black")
 
  //Ver el resultado
 SVGTool_SHOW_IN_VIEWER($Dom_svg)
 
  //SVG_SAVE_AS_TEXT($Dom_svg;System folder(Desktop)+"export.svg")
 
  //No olvide limpiar la memoria
 SVG_CLEAR($Dom_svg)

 
PROPIEDADES 

Producto: 4D
Tema: Colores y degrades

Comportamiento específico bajo Windows

 
HISTORIA 

Creado por: 4D v14

 
ARTICLE USAGE

4D SVG ( 4D v16)