Desfoque gaussiano SVG

O filtro SVG deve ser definido dentro do elemento <defs>.

Desfoque gaussiano (Gaussian Blur)

O elemento <filter> é usado para definir filtros SVG. O elemento <filter> usa a propriedade id necessária para definir qual filtro aplicar aos gráficos?

O elemento <filter> deve estar aninhado dentro do elemento <defs>. O <defs> é a abreviação de definitions e permite definir elementos especiais como filtros

Copie o código abaixo para um bloco de notas e salve o arquivo como "filter1.svg". Coloque este arquivo na sua pasta web:

<?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="100%" height="100%" version="1.1"
xmlns="http://www.w3.org/2000/svg"
<defs>
<filter id="Gaussian_Blur">
<feGaussianBlur in="SourceGraphic" stdDeviation="3" />
</filter>
</defs>
<ellipse cx="200" cy="150" rx="70" ry="40"
style="fill:#ff0000;stroke:#000000;
stroke-width:2;filter:url(#Gaussian_Blur)"/>
</svg>

Explicação do código:

  • A propriedade id do elemento <filter> define um nome único para o filtro (o mesmo filtro pode ser usado por vários elementos no documento)
  • A propriedade filter:url é usada para conectar o elemento ao filtro. Quando se liga ao id do filtro, deve-se usar o caractere #
  • O efeito de filtro é definido pelo elemento <feGaussianBlur>. O sufixo fe pode ser usado para todos os filtros
  • A propriedade stdDeviation do elemento <feGaussianBlur> define o grau de desfoque
  • A parte in="SourceGraphic" define o efeito criado por todo o gráfico

Ver Exemplo

Outro exemplo com um valor diferente de stdDeviation

<?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="100%" height="100%" version="1.1"
xmlns="http://www.w3.org/2000/svg"
<defs>
<filter id="Gaussian_Blur">
<feGaussianBlur in="SourceGraphic" stdDeviation="20"/>
</filter>
</defs>
<ellipse cx="200" cy="150" rx="70" ry="40"
style="fill:#ff0000;stroke:#000000;
stroke-width:2;filter:url(#Gaussian_Blur)"/>
</svg>

Ver Exemplo