Skip to content
Technical

Effets de filtres SVG : créer des effets visuels avancés

Maîtrisez les filtres SVG pour le flou, les ombres, les effets de couleur et les traitements visuels complexes. Guide complet des primitives de filtre et combinaisons créatives.

Robin Monteiro28 janvier 202610 octobre 20267 min
Use this article with an AI assistant:
.md
Effets de filtres SVG : créer des effets visuels avancés
R
Robin Monteiro

Founder of VectoSolve

Self-taught developer, founder and sole developer of VectoSolve since 2024. He builds the conversion engine and the cutting, embroidery and 3D printing exports.

How this article was made: drafted with AI assistance, then edited and fact-checked before publication. About the author

Image vectorizationCutting machine filesEmbroidery filesSVG
Free previewNo signupFull-quality output

Key Takeaways

  • Les filtres SVG appliquent des effets visuels accélérés par GPU comme le flou, l'ombre et la distorsion directement dans le navigateur
  • Les primitives de filtre (feGaussianBlur, feColorMatrix, feTurbulence, etc.) peuvent être chaînées pour créer des effets complexes
  • Des recettes créatives comme le verre dépoli, le néon lumineux et le relief sont construites en combinant des primitives de filtre simples
  • Les performances varient considérablement — feColorMatrix est léger tandis que feTurbulence est lourd en calcul
  • Utilisez les filtres CSS comme solution de repli pour les effets simples et réservez les filtres SVG pour les compositions avancées

La puissance des filtres SVG

Les filtres SVG permettent des effets visuels sophistiqués sans images raster. Des ombres simples aux distorsions complexes, les filtres transforment les graphiques vectoriels de manière puissante.

Aperçu des effets de filtres SVG montrant le flou, l'ombre et les transformations de couleur
Les filtres SVG transforment des formes simples en compositions visuelles époustouflantes

Les bases des filtres

Structure d'un filtre

xml
<defs>
  <filter id="myFilter">
    <!-- Primitives de filtre ici -->
  </filter>
</defs>

<rect filter="url(#myFilter)" .../>

Région du filtre

Contrôlez les limites du filtre :

xml
<filter id="f" x="-20%" y="-20%" width="140%" height="140%">
  <!-- Étend la zone du filtre au-delà de l'élément -->
</filter>

Pro Tip: Étendez toujours la région du filtre (ex: x="-20%") lors de l'utilisation d'effets de flou ou d'ombre. Si la sortie de votre filtre semble coupée, la région du filtre est trop petite.


Effets de filtre courants

Flou (feGaussianBlur)

xml
<filter id="blur">
  <feGaussianBlur stdDeviation="5"/>
</filter>

Flou variable :

xml
<!-- Flou horizontal uniquement -->
<feGaussianBlur stdDeviation="10 0"/>

<!-- Flou vertical uniquement -->
<feGaussianBlur stdDeviation="0 10"/>

Ombre portée (feDropShadow)

Ombre simple :

xml
<filter id="shadow">
  <feDropShadow dx="3" dy="3" stdDeviation="2" flood-opacity="0.5"/>
</filter>

Ombre personnalisée

Plus de contrôle :

xml
<filter id="custom-shadow">
  <feGaussianBlur in="SourceAlpha" stdDeviation="3" result="blur"/>
  <feOffset in="blur" dx="4" dy="4" result="offset"/>
  <feFlood flood-color="#000" flood-opacity="0.5" result="color"/>
  <feComposite in="color" in2="offset" operator="in" result="shadow"/>
  <feMerge>
    <feMergeNode in="shadow"/>
    <feMergeNode in="SourceGraphic"/>
  </feMerge>
</filter>

A Full Year of Conversions for $49

Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime

Get the Annual Deal

Effets de couleur

Matrice de couleur (feColorMatrix)

Conversion en niveaux de gris :

xml
<filter id="grayscale">
  <feColorMatrix type="saturate" values="0"/>
</filter>

Ton sépia :

xml
<filter id="sepia">
  <feColorMatrix type="matrix"
    values="0.393 0.769 0.189 0 0
            0.349 0.686 0.168 0 0
            0.272 0.534 0.131 0 0
            0     0     0     1 0"/>
</filter>

Rotation de teinte :

xml
<filter id="hue-rotate">
  <feColorMatrix type="hueRotate" values="90"/>
</filter>

Ajustement des couleurs

Luminosité/contraste :

xml
<filter id="bright">
  <feComponentTransfer>
    <feFuncR type="linear" slope="1.5" intercept="0"/>
    <feFuncG type="linear" slope="1.5" intercept="0"/>
    <feFuncB type="linear" slope="1.5" intercept="0"/>
  </feComponentTransfer>
</filter>
"

Les filtres SVG sont le Photoshop du navigateur — superposez-les judicieusement et vous pouvez créer des effets qui nécessiteraient autrement un logiciel de retouche d'image lourd.

— Sara Soueidan, experte SVG

Déplacement et distorsion

Turbulence

Création de bruit :

xml
<filter id="turbulence">
  <feTurbulence type="turbulence"
                baseFrequency="0.05"
                numOctaves="2"/>
</filter>

Carte de déplacement

Distorsion avec motif :

xml
<filter id="displace">
  <feTurbulence type="turbulence"
                baseFrequency="0.02"
                numOctaves="3"
                result="noise"/>
  <feDisplacementMap in="SourceGraphic"
                      in2="noise"
                      scale="30"
                      xChannelSelector="R"
                      yChannelSelector="G"/>
</filter>

Effets d'éclairage

Éclairage diffus

Éclairage de type 3D :

xml
<filter id="diffuse">
  <feDiffuseLighting lighting-color="#white" surfaceScale="5">
    <fePointLight x="100" y="100" z="200"/>
  </feDiffuseLighting>
</filter>

Éclairage spéculaire

Reflets brillants :

xml
<filter id="specular">
  <feSpecularLighting specularConstant="1"
                       specularExponent="30"
                       lighting-color="white"
                       surfaceScale="5">
    <fePointLight x="150" y="60" z="200"/>
  </feSpecularLighting>
</filter>

Free SVG Tools for Crafters

Design Checker · Color Separator · Mat Preview · Offset Generator · Text to SVG

Check Your SVG Free

Combiner les filtres

Opérations de fusion

Superposition de résultats :

xml
<filter id="glow">
  <feGaussianBlur in="SourceGraphic" stdDeviation="10" result="blur"/>
  <feMerge>
    <feMergeNode in="blur"/>
    <feMergeNode in="blur"/>
    <feMergeNode in="SourceGraphic"/>
  </feMerge>
</filter>

Opérations de composition

Combiner avec des opérateurs :

xml
<filter id="cutout">
  <feImage href="mask.svg" result="mask"/>
  <feComposite in="SourceGraphic"
               in2="mask"
               operator="in"/>
</filter>

Recettes créatives

Verre dépoli

xml
<filter id="frosted">
  <feGaussianBlur in="SourceGraphic" stdDeviation="10" result="blur"/>
  <feColorMatrix in="blur" type="saturate" values="1.5" result="saturate"/>
  <feTurbulence type="fractalNoise" baseFrequency="0.1" result="noise"/>
  <feDisplacementMap in="saturate" in2="noise" scale="5"/>
</filter>

Lueur néon

xml
<filter id="neon">
  <feFlood flood-color="#ff00ff" result="flood"/>
  <feComposite in="flood" in2="SourceGraphic" operator="in" result="mask"/>
  <feGaussianBlur in="mask" stdDeviation="5" result="blur"/>
  <feMerge>
    <feMergeNode in="blur"/>
    <feMergeNode in="blur"/>
    <feMergeNode in="SourceGraphic"/>
  </feMerge>
</filter>

Effet de relief

xml
<filter id="emboss">
  <feConvolveMatrix
    order="3"
    kernelMatrix="-2 -1 0
                  -1  1 1
                   0  1 2"/>
</filter>
Effets SVG animés incluant lueur, turbulence et transitions dynamiques
L'animation des filtres SVG ajoute de la profondeur et de l'interactivité aux graphiques web

Animation avec les filtres

Flou animé

xml
<filter id="animated-blur">
  <feGaussianBlur stdDeviation="0">
    <animate attributeName="stdDeviation"
             values="0;10;0"
             dur="2s"
             repeatCount="indefinite"/>
  </feGaussianBlur>
</filter>

Turbulence dynamique

xml
<feTurbulence baseFrequency="0.02">
  <animate attributeName="baseFrequency"
           values="0.01;0.05;0.01"
           dur="5s"
           repeatCount="indefinite"/>
</feTurbulence>

A Full Year of Conversions for $49

Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime

Get the Annual Deal

Considérations de performance

Impact sur les performances

Performance des filtres :
feGaussianBlur : Lourd (dépend du rayon)
feColorMatrix : Léger
feTurbulence : Très lourd
feDisplacementMap : Lourd
Filtres chaînés : Cumulatif

Conseils d'optimisation

  1. Minimiser la région du filtre
  2. Réduire le rayon de flou
  3. Limiter les effets chaînés
  4. Mettre en cache les filtres statiques
  5. Utiliser les filtres CSS quand c'est possible

Pour les effets simples comme le flou, les niveaux de gris ou l'ombre portée, le filter CSS est nettement plus rapide que les filtres SVG car il exploite le compositing accéléré par le matériel. Réservez les filtres SVG pour les effets que le CSS ne peut pas reproduire.

Alternative avec les filtres CSS

Quand c'est possible, utilisez le CSS :

css
.blurred {
  filter: blur(5px);
}

.grayscale {
  filter: grayscale(100%);
}

Compatibilité navigateur

État du support

Support large :
- feGaussianBlur
- feColorMatrix
- feOffset
- feMerge

Support variable :
- feDisplacementMap
- feTurbulence
- feDiffuseLighting

Stratégies de repli

css
.element {
  /* Repli */
  box-shadow: 0 2px 10px rgba(0,0,0,0.3);
}

@supports (filter: url(#shadow)) {
  .element {
    box-shadow: none;
    filter: url(#shadow);
  }
}

Conclusion

Les filtres SVG permettent des effets sophistiqués impossibles avec le CSS seul. Bien qu'intensifs en calcul, ils offrent un contrôle précis sur les traitements visuels. Utilisez-les judicieusement pour des effets percutants, en tenant toujours compte des performances et en fournissant des solutions de repli.

Créer des effets vectoriels filtrés


Primitive de filtreEffetCoût en performance
feGaussianBlurFlou doux / verre dépoliMoyen (accéléré GPU)
feColorMatrixDécalage de couleur, désaturationFaible
feTurbulenceBruit, textures organiquesÉlevé (calcul au niveau pixel)
feDisplacementMapDistorsion, effets d'ondulationÉlevé
feDropShadowOmbres portéesFaible–Moyen

Free SVG Tools for Crafters

Design Checker · Color Separator · Mat Preview · Offset Generator · Text to SVG

Check Your SVG Free

Sources et lectures complémentaires

Tags:
Filtres SVG
Effets visuels
Flou
Ombre
Avancé
Share:

Try VectoSolve Now

Convert your images to high-quality SVG vectors with AI

AI-Powered Vectorization

Ready to vectorize your images?

Convert your PNG, JPG, and other images to high-quality, scalable SVG vectors in seconds.