Filtro de Desfoque Gaussiano SVG C#

As imagens SVG ou Scalable Vector Graphic são populares devido aos seus recursos de escalabilidade e qualidade. Você pode aplicar vários filtros em imagens SVG com base em seus requisitos. para desfocar e suavizar uma imagem SVG, você pode aplicar um filtro de desfoque gaussiano. Seguindo esses casos de uso, este artigo discute como criar um filtro de desfoque gaussiano em uma imagem SVG programaticamente em C#.

Filtro de desfoque gaussiano na imagem SVG – download da API C#

Aspose.SVG for .NET pode ser usado para criar ou editar arquivos Scalable Vector Graphic programaticamente em C#. Você pode baixar rapidamente os arquivos DLL da seção Downloads ou usar o seguinte comando de instalação do NuGet no Microsoft Visual Studio IDE:

PM> Install-Package Aspose.SVG

Como criar um filtro de desfoque gaussiano na imagem SVG em C

Você pode criar um filtro de desfoque gaussiano em uma imagem SVG seguindo as etapas abaixo:

  1. Inicialize um objeto de classe SVGDocument e defina o URL do namespace SVG.
  2. Crie um elemento de imagem e um elemento de filtro.
  3. Anexe o elemento gráfico.
  4. Crie um elemento feGaussianBlur e adicione-o ao filterElement.
  5. Salve a imagem SVG de saída.

Criar filtro de desfoque gaussiano na imagem SVG programaticamente em C

As etapas a seguir podem ser usadas para criar um filtro de desfoque gaussiano em uma imagem SVG programaticamente em C#:

  1. Crie uma instância SVGDocument e carregue o arquivo SVG de origem.
  2. Especifique a URL do namespace para SVG e acesse o elemento raiz.
  3. Crie um elemento de filtro e um elemento feGaussianBlur.
  4. Exporte o arquivo SVG de saída com o método Salvar.

O exemplo de código a seguir demonstra como criar um filtro de desfoque gaussiano em uma imagem SVG em C#:

// Inicializar um objeto de classe SVGDocument
Aspose.Svg.SVGDocument document = new Aspose.Svg.SVGDocument("complex.svg");

// Definir URL do namespace SVG
string SvgNamespace = "http://www.w3.org/2000/svg";

// Obter elemento svg raiz do documento
Aspose.Svg.SVGSVGElement svgElement = document.RootElement;

// Crie um elemento de imagem e adicione-o ao svgElement
Aspose.Svg.SVGImageElement imageElement = (Aspose.Svg.SVGImageElement)document.CreateElementNS(SvgNamespace, "image");
imageElement.Href.BaseVal = dataDir +  "complex.jpg";
imageElement.Height.BaseVal.ConvertToSpecifiedUnits(Aspose.Svg.DataTypes.SVGLength.SVG_LENGTHTYPE_PX);
imageElement.Width.BaseVal.ConvertToSpecifiedUnits(Aspose.Svg.DataTypes.SVGLength.SVG_LENGTHTYPE_PX);
imageElement.Height.BaseVal.Value = 640;
imageElement.Width.BaseVal.Value = 480;
imageElement.X.BaseVal.Value = 20;
imageElement.Y.BaseVal.Value = 20;
imageElement.SetAttribute("filter", "url(#F1)");
svgElement.AppendChild(imageElement);

// Crie um elemento defs e adicione ao svgElement
Aspose.Svg.SVGDefsElement defsElement = (Aspose.Svg.SVGDefsElement)document.CreateElementNS(SvgNamespace, "defs");
svgElement.AppendChild(defsElement);

// Crie um elemento de filtro e adicione ao defsElement
Aspose.Svg.SVGFilterElement filterElement = (Aspose.Svg.SVGFilterElement)document.CreateElementNS(SvgNamespace, "filter");
defsElement.AppendChild(filterElement);

// Crie um elemento feGaussianBlur e adicione ao filterElement	
Aspose.Svg.Filters.SVGFEGaussianBlurElement feGaussianBlurElement = (Aspose.Svg.Filters.SVGFEGaussianBlurElement)document.CreateElementNS(SvgNamespace, "feGaussianBlur");
feGaussianBlurElement.In1.BaseVal = "SourceGraphic";
feGaussianBlurElement.StdDeviationX.BaseVal = 3;
feGaussianBlurElement.StdDeviationY.BaseVal = 3;
feGaussianBlurElement.SetAttribute("x", "-20px");
feGaussianBlurElement.SetAttribute("y", "-20px");
feGaussianBlurElement.SetAttribute("height", "720px");
feGaussianBlurElement.SetAttribute("width", "560px");
filterElement.Id = "F1";
filterElement.AppendChild(feGaussianBlurElement);

// Salve o documento SVG
document.Save(Path.Combine(dataDir, "gaussianBlur.svg"));

Obtenha licença de API gratuita

Você pode avaliar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, você investigou e explorou como criar um efeito de filtro de desfoque gaussiano em uma imagem SVG programaticamente em C#. Visto que você pode dar uma olhada no espaço documentation para verificar vários recursos oferecidos pela API. Sinta-se à vontade para nos escrever no fórum caso precise discutir alguma de suas preocupações.

Veja também