Filtro de desenfoque gaussiano SVG C#

Las imágenes SVG o gráficos vectoriales escalables son populares debido a sus características de escalabilidad y calidad. Puede aplicar varios filtros en imágenes SVG según sus requisitos. para desenfocar y suavizar una imagen SVG, puede aplicar un filtro de desenfoque gaussiano. Siguiendo estos casos de uso, este artículo analiza cómo crear un filtro de desenfoque gaussiano en una imagen SVG mediante programación en C#.

Filtro de desenfoque gaussiano en imagen SVG: descarga de la API de C#

Aspose.SVG para .NET se puede usar para crear o editar archivos de gráficos vectoriales escalables mediante programación en C#. Puede descargar rápidamente los archivos DLL desde la sección Descargas, o usar el siguiente comando de instalación de NuGet en el IDE de Microsoft Visual Studio:

PM> Install-Package Aspose.SVG

Cómo crear un filtro de desenfoque gaussiano en una imagen SVG en C#

Puede crear un filtro de desenfoque gaussiano en una imagen SVG siguiendo los pasos a continuación:

  1. Inicialice un objeto de clase SVGDocument y configure la URL del espacio de nombres SVG.
  2. Cree un elemento de imagen y un elemento de filtro.
  3. Añada el elemento gráfico.
  4. Cree un elemento feGaussianBlur y agréguelo a filterElement.
  5. Guarde la imagen SVG de salida.

Cree un filtro de desenfoque gaussiano en una imagen SVG mediante programación en C#

Los siguientes pasos se pueden usar para crear un filtro de desenfoque gaussiano en una imagen SVG mediante programación en C#:

  1. Cree una instancia de SVGDocument y cargue el archivo SVG de origen.
  2. Especifique la URL del espacio de nombres para SVG y acceda al elemento raíz.
  3. Cree un elemento de filtro y un elemento feGaussianBlur.
  4. Exporte el archivo SVG de salida con el método Guardar.

El siguiente ejemplo de código muestra cómo crear un filtro de desenfoque gaussiano en una imagen SVG en C#:

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

// Establecer URL de espacio de nombres SVG
string SvgNamespace = "http://www.w3.org/2000/svg";

// Obtenga el elemento svg raíz del documento
Aspose.Svg.SVGSVGElement svgElement = document.RootElement;

// Cree un elemento de imagen y agréguelo a 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);

// Cree un elemento defs y agréguelo a svgElement
Aspose.Svg.SVGDefsElement defsElement = (Aspose.Svg.SVGDefsElement)document.CreateElementNS(SvgNamespace, "defs");
svgElement.AppendChild(defsElement);

// Cree un elemento de filtro y agréguelo a defsElement
Aspose.Svg.SVGFilterElement filterElement = (Aspose.Svg.SVGFilterElement)document.CreateElementNS(SvgNamespace, "filter");
defsElement.AppendChild(filterElement);

// Cree un elemento feGaussianBlur y agréguelo al 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);

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

Obtenga una licencia de API gratuita

Puede evaluar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, ha investigado y explorado cómo crear un efecto de filtro de desenfoque gaussiano en una imagen SVG mediante programación en C#. Mientras que puede echar un vistazo al espacio documentación para comprobar las diversas funciones que ofrece la API. No dude en escribirnos al foro en caso de que necesite hablar sobre alguna de sus inquietudes.

Ver también