Filtre de flou gaussien SVG C#

Les images SVG ou Scalable Vector Graphic sont populaires en raison de leur évolutivité et de leurs caractéristiques de qualité. Vous pouvez appliquer plusieurs filtres sur les images SVG en fonction de vos besoins. pour flouter et lisser une image SVG, vous pouvez appliquer un filtre de flou gaussien. Suite à de tels cas d’utilisation, cet article explique comment créer un filtre de flou gaussien sur une image SVG par programmation en C#.

Filtre de flou gaussien sur une image SVG - Téléchargement de l’API C#

Aspose.SVG pour .NET peut être utilisé pour créer ou modifier des fichiers graphiques vectoriels évolutifs par programmation en C#. Vous pouvez télécharger rapidement les fichiers DLL à partir de la section Téléchargements ou utiliser la commande d’installation NuGet suivante dans Microsoft Visual Studio IDE :

PM> Install-Package Aspose.SVG

Comment créer un filtre de flou gaussien sur une image SVG en C#

Vous pouvez créer un filtre de flou gaussien sur une image SVG en suivant les étapes ci-dessous :

  1. Initialisez un objet de classe SVGDocument et définissez l’URL de l’espace de noms SVG.
  2. Créez un élément d’image et un élément de filtre.
  3. Ajoutez l’élément graphique.
  4. Créez un élément feGaussianBlur et ajoutez-le à filterElement.
  5. Enregistrez l’image SVG de sortie.

Créer un filtre de flou gaussien sur une image SVG par programmation en C#

Les étapes suivantes peuvent être utilisées pour créer un filtre de flou gaussien sur une image SVG par programmation en C# :

  1. Créez une instance SVGDocument et chargez le fichier SVG source.
  2. Spécifiez l’URL de l’espace de noms pour SVG et accédez à l’élément racine.
  3. Créez un élément de filtre et un élément feGaussianBlur.
  4. Exportez le fichier SVG de sortie avec la méthode Save.

L’exemple de code suivant montre comment créer un filtre de flou gaussien sur une image SVG en C# :

// Initialiser un objet de classe SVGDocument
Aspose.Svg.SVGDocument document = new Aspose.Svg.SVGDocument("complex.svg");

// Définir l'URL de l'espace de noms SVG
string SvgNamespace = "http://www.w3.org/2000/svg";

// Obtenir l'élément svg racine du document
Aspose.Svg.SVGSVGElement svgElement = document.RootElement;

// Créez un élément d'image et ajoutez-le au 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);

// Créez un élément defs et ajoutez-le à svgElement
Aspose.Svg.SVGDefsElement defsElement = (Aspose.Svg.SVGDefsElement)document.CreateElementNS(SvgNamespace, "defs");
svgElement.AppendChild(defsElement);

// Créez un élément de filtre et ajoutez-le à defsElement
Aspose.Svg.SVGFilterElement filterElement = (Aspose.Svg.SVGFilterElement)document.CreateElementNS(SvgNamespace, "filter");
defsElement.AppendChild(filterElement);

// Créez un élément feGaussianBlur et ajoutez-le à 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);

// Enregistrez le document SVG
document.Save(Path.Combine(dataDir, "gaussianBlur.svg"));

Obtenez une licence API gratuite

Vous pouvez évaluer l’API sans aucune limitation d’évaluation en demandant une licence temporaire gratuite.

Conclusion

Dans cet article, vous avez étudié et exploré comment créer un effet de filtre de flou gaussien sur une image SVG par programmation en C#. Alors que vous pouvez jeter un œil à l’espace documentation pour vérifier les différentes fonctionnalités offertes par l’API. N’hésitez pas à nous écrire sur le forum au cas où vous auriez besoin de discuter de l’une de vos préoccupations.

Voir également