4D v16

SVG_Filter_ColorMatrix

Página Inicial

 
4D v16
SVG_Filter_ColorMatrix

SVG_Filter_ColorMatrix 


 

SVG_Filter_ColorMatrix ( objetoSVG {; in ; result} {; tipo {; valores}} ) -> Resultado 
Parâmetro Tipo   Descrição
objetoSVG  Ref_SVG in Referência do objeto SVG
in  Texto in Identifica entrada para o filtro dado primitivo
result  Texto in Oferece uma referência para o resultado de saída de um filtro
tipo  Texto in Indica o tipo de operação da matriz
valores  Texto in Valores numéricos da matriz de transformação
Resultado  Ref_SVG in Referência para o objeto SVG com novos valores de cor

O comando SVG_Filter_ColorMatrix aplica uma transformação de matriz de cor a cada pixel da imagem fonte passada no parâmetro objetoSVG para produzir um resultado com um novo conjunto de valores de cor.

No parâmetro in, pode passar uma cadeia que coincide com um valor "result" anterior ou uma das seis seguintes palavras chaves:

  • SourceGraphic: o elemento objetivo (imagem, forma , grupo, etc.) que referencia o filtro. Esta palavra chave representa os elementos gráficos que eram a entrada original no elemento "filtro".
  • SourceAlpha: o canvas sob o SourceGraphic. Esta palavra chave representa os elementos gráficos que eram a entrada original no elemento "filtro".
  • BackgroundImage: o canvas sob o SourceGraphic. Esta palavra chave representa uma instantânea de imagem do canvas sob a região do filtro no momento em que se invocou o elemento "filtro".
  • BackgroundAlpha: o canal alfa do canvas sob o SourceGraphic. Igual que BackgroundImage exceto que unicamente se utiliza o canal alfa.
  • FillPaint: um pseudo gráfico igual ao tamanho da região de filtro preenchido com a propriedade de preenchimento do elemento objetivo. Esta palavra chave representa o valor da propriedade 'preenchimento' no elemento objetivo para o efeito filtro.
  • StrokePaint: um pseudo gráfico igual ao tamanho da região de filtro de preenchimento com a propriedade de traço do elemento objetivo. Esta palavra chave representa o valor da propriedade 'traço' no elemento objetivo para o efeito de filtro.

Se não passar nenhum valor e este é o primeiro filtro primitivo, então o SourceGraphic se utiliza como sua entrada. Se não se oferece nenhum valor e este é um filtro posterior primitivo, a continuação, este filtro primitivo, utilizará o resultado do filtro anterior primitivo como sua entrada.

No parâmetro result, passe uma referência para o resultado da saída de um filtro que pode ser referenciado pelo parâmetro in em um uso posterior deste comando no mesmo elemento "filtro". Se não se oferece nenhum valor, a saída se encontra disponível para sua reutilização como a entrada implícita para a seguinte primitiva de filtro se esse filtro primitivo oferece nenhum valor para seu parâmetro in.

No parâmetro tipo, pode especificar o tipo de operação matriz ao passar uma das seguintes palavras:

  • saturate: ajusta a saturação de todos os canais de cor RGB utilizando um valor de número real de 0 a 1 que se passa no parâmetro valores.
  • hueRotate: rota o pixel foge de todos os canais de cor RGB o ângulo especificado (em graus) no parâmetro valores,
  • luminanceToAlpha: converte os canais vermelho, verde e azul em um valor de luminária. Os canais RGB estão definidos em preto (0,0,0).)
  • matrix: define a cor utilizando a lista de valores passados no parâmetro valores. Permite o valor de cada canal na saída a especificar de uma combinação de sua cor existente e canais alfa.

Se não passa um parâmetro tipo, por padrão o efeito é como se um valor de matriz tivesse sido especificado.

No parâmetro valores, passe valores numéricos baseados na palavra chave passada no parâmetro tipo:

  • Com a palavra chave "matrix":  passe uma lista de 20 valores de matriz, separados por espaços em branco e/ou uma vírgula.
  • Com a palavra chave "saturate": passe um valor de número real individual (0 a 1). O valor permitido de acordo com a especificação é de 0-1, mas muitos navegadores aceitam valores superiores> 1 para permitir o excesso de saturação.
  • Com a palavra chave "hueRotate": passe um valor número real (para indicar os graus de rotação).
  • Com a palavra chave "luminanceToAlpha": não passe um valor numérico. O atributo "valores" não se utiliza com este tipo, o que descarta o canal alfa e o substitui com valores iguais a luminância da entrada.

Se não passar um parâmetro valores, o comportamento por padrão depende da palavra chave passada no parâmetro tipo:

  • Com a palavra chave "matrix": por padrão se utilizam os valores da matriz de identidade
  • Com a palavra chave "saturate": por padrão, o valor é 1 (sem mudanças).
  • Com a palavra chave "hueRotate": por padrão o valor é 0 (sem mudanças).
  • Com a palavra chave "luminanceToAlpha": por padrão, este parâmetro não se utiliza.



Nota: sob Windows, este comando requer a desativação prévia de Direct2D (ver a constante Direct2D disabled na descrição do comando SET DATABASE PARAMETER).

Exemplo  

 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 o resultado
 SVGTool_SHOW_IN_VIEWER($Dom_svg)
 
  //SVG_SAVE_AS_TEXT($Dom_svg;System folder(Desktop)+"export.svg")
 
  //Não esqueça de limpar a memória
 SVG_CLEAR($Dom_svg)

 
PROPRIEDADES 

Produto: 4D
Tema: Cores e gradientes

Comportamento específico sob Windows

 
HISTÓRIA 

Criado por: 4D v14

 
ARTICLE USAGE

4D SVG ( 4D v16)