4D v16

SVG_Filter_ColorMatrix

Accueil

 
4D v16
SVG_Filter_ColorMatrix

SVG_Filter_ColorMatrix 


 

SVG_Filter_ColorMatrix ( objetSVG {; in ; result} {; type {; values}} ) -> Résultat 
Paramètre Type   Description
objetSVG  Ref_SVG in Référence objet SVG
in  Texte in Précise les entrées pour la primitive de filtre "ColorMatrix"
result  Texte in Fournit une référence pour le résultat de sortie du filtre
type  Texte in Indique le type d'opération de matrice
values  Texte in Valeurs pour la matrice de transformation. Les valeurs numériques sont à passer avec le "." comme séparateur décimal.
Résultat  Ref_SVG in Référence de l'objet SVG avec de nouvelles valeurs pour les couleurs

La commande SVG_Filter_ColorMatrix applique une matrice de transformation sur chaque pixel de l'image source passée dans le paramètre objetSVG afin de produire un résultat avec de nouvelles couleurs.

Dans le paramètre in, vous pouvez passer une chaîne qui correspond à un précédent result ou un des six mots-clefs suivants : 

  • SourceGraphic : l'élément cible (image, forme, groupe etc.) auquel le filtre fait référence. Ce mot-clé représente les éléments graphiques manipulés par l'élément filtre.
  • SourceAlpha : la couche sous la source SourceGraphic. Ce mot-clé représente les éléments graphiques manipulés par l'élément filtre.
  • BackgroundImage : l'arrière-plan de la source SourceGraphic.  Ce mot-clé représente un instantané de la couche sous la région manipulé par le filtre, au moment où l'élément filtre était invoqué.
  • BackgroundAlpha : le canal alpha de la couche sous la source SourceGraphic. Identique à BackgroundImage, excepté que le canal alpha est utilisé.
  • FillPaint : un pseudo-graphique égal à la taille de la région de filtre remplie par la propriété de remplissage de l'élément cible. Ce mot-clé représente la valeur de la propriété de remplissage sur l'élément cible pour l'effet de filtre.
  • StrokePaint : un pseudo-graphique égal à la taille de la région du filtre remplie par la propriété de remplissage de l'élément cible. Ce mot-clé représente la valeur de la propriété 'Stroke' sur l'élément cible pour l'effet de filtre.

Si aucune valeur n'est passée et s'il s'agit de la première primitive de filtre, alors la source SourceGraphic est utilisée comme entrée. Si aucune valeur n'est passée et s'il s'agit d'une primitive de filtre subséquente, alors le filtre primitif utilisera le résultat du précédent filtre primitif en entrée.

Dans le paramètre result, vous passez une référence pour le résultat en sortie du filtre référencé dans le paramètre in dans une utilisation subséquente de cette commande dans le même élément de filtre. Si aucune valeur n'est fournie, la sortie ne sera disponible qu'en réutilisation comme entrée implicite pour la primitive de filtre suivante, si cette dernière n'a aucune valeur pour son attribut in.

Dans le paramètre type, vous pouvez spécifier le type d'opération de matrice en passant un des attributs suivants : 

  • matrix : ce mot-clé signifie la fourniture d'une matrice complète de 5x4 (20) valeurs. Il fixe la couleur en utilisant la liste des valeurs passées dans le paramètre values. Permet de spécifier la valeur de chaque canal de sortie, à partir d'une combinaison du canal de sa couleur existante et du canal de la couche alpha.
  • saturate : ajuste la saturation de tous les canaux de couleur RVB en utilisant un nombre réel de 0 à 1 passé dans le paramètre values.
  • hueRotate : change la teinte de tous les canaux de couleur RVB par l'angle spécifié (en degré) dans le paramètre values,
  • luminanceToAlpha : convertis les canaux rouge, vert et bleu vers la luminance indiquée. Les canaux RVB sont fixés en noir (0,0,0).

Si vous ne passez pas le paramètre type, par défaut c'est le type Matrix qui est appliqué.

Dans le paramètre values, vous passez les valeurs numériques en fonction du mot-clé passé dans le paramètre type :

  • avec le mot-clé "matrix"  : vous passez une matrice de 20 valeurs dans l'attribut values, séparées par un espace ou une virgule.
  • avec le mot-clé "saturate" : l'attribut values admet une seule valeur de type réel (de 0 à 1). La valeur autorisée selon la spécification est 0-1, mais beaucoup de navigateurs acceptent des valeurs supérieures à >1 pour permettre la sur-saturation.
  • avec le mot-clé "hueRotate" : l'attribut values admet une seule valeur de type réel, indiquant le degré de rotation.
  • avec le mot-clé "luminanceToAlpha" : vous ne passez pas une valeur numérique. L'attribut values ne s'applique pas pour ce type qui n'utilise pas le canal alpha et le remplace par des valeurs égales à la luminance de l'image en entrée.

Si vous ne passez pas le paramètre values, le comportement par défaut dépend du mot-clé passé dans le paramètre type

  • avec le mot-clé "matrix" : par défaut les valeurs de la matrice identité sont utilisées.
  • avec le mot-clé "saturate" : par défaut, la valeur est 1 (pas de changement).
  • avec le mot-clé "hueRotate" : par défaut, la valeur est  0 (pas de changement).
  • avec le mot-clé "luminanceToAlpha" : par défaut, ce paramètre n'est pas utilisé.

Note : Sous Windows, cette commande requiert la désactivation préalable de Direct2D (cf. constante Direct2D désactivé dans la description de la commande FIXER PARAMETRE BASE).

Exemple  

 C_TEXTE($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")
    // another syntax for value
    //$Dom_node:=SVG_Filter_ColorMatrix ($Dom_filter;"SourceGraphic";"";"saturate";Chaine(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;"Pas de filtre";110;10;"Verdana";60;Gras;-1;"black")
 SVG_New_text($Dom_svg;"Matrix";110;110;"Verdana";60;Gras;-1;"black")
 SVG_New_text($Dom_svg;"Saturate";110;210;"Verdana";60;Gras;-1;"black")
 SVG_New_text($Dom_svg;"HueRotate";110;310;"Verdana";60;Gras;-1;"black")
 SVG_New_text($Dom_svg;"Luminance";110;410;"Verdana";60;Gras;-1;"black")
 
   //View the result
 SVGTool_SHOW_IN_VIEWER($Dom_svg)
 
   //SVG_SAVE_AS_TEXT($Dom_svg;System folder(Desktop)+"export.svg")
 
   //Don't forget to clear the memory
 SVG_CLEAR($Dom_svg)

 
PROPRIÉTÉS 

Produit : 4D
Thème : Couleurs et dégradés
Nom intl. : SVG_Filter_ColorMatrix

Comportement spécifique sous Windows

 
HISTORIQUE 

Créé : 4D v14

 
UTILISATION DE L'ARTICLE

4D SVG ( 4D v16)