高斯模糊滤镜 SVG C#

SVG 或可缩放矢量图形图像因其可扩展性和质量特性而广受欢迎。您可以根据您的要求在 SVG 图像上应用多个过滤器。要模糊和平滑 SVG 图像,您可以应用高斯模糊滤镜。在这些用例之后,本文讨论了如何在 C# 中以编程方式在 SVG 图像上创建高斯模糊滤镜。

SVG 图像上的高斯模糊滤镜 – C# API 下载

Aspose.SVG for .NET 可用于在 C# 中以编程方式创建或编辑可缩放矢量图形文件。您可以从 Downloads 部分快速下载 DLL 文件,或在 Microsoft Visual Studio IDE 中使用以下 NuGet 安装命令:

PM> Install-Package Aspose.SVG

如何在 C# 中对 SVG 图像创建高斯模糊滤镜

您可以按照以下步骤在 SVG 图像上创建高斯模糊滤镜:

  1. 初始化一个 SVGDocument 类对象并设置 SVG 命名空间 URL。
  2. 创建一个图像元素和一个滤镜元素。
  3. 附加图形元素。
  4. 创建一个 feGaussianBlur 元素并将其添加到 filterElement。
  5. 保存输出的 SVG 图像。

在 C# 中以编程方式在 SVG 图像上创建高斯模糊滤镜

以下步骤可用于在 C# 中以编程方式在 SVG 图像上创建高斯模糊滤镜:

  1. 创建一个 SVGDocument 实例并加载源 SVG 文件。
  2. 指定 SVG 的命名空间 URL 并访问根元素。
  3. 创建一个过滤器元素和 feGaussianBlur 元素。
  4. 使用 Save 方法导出输出 SVG 文件。

以下代码示例演示了如何在 C# 中对 SVG 图像创建高斯模糊滤镜:

// 初始化一个 SVGDocument 类对象
Aspose.Svg.SVGDocument document = new Aspose.Svg.SVGDocument("complex.svg");

// 设置 SVG 命名空间 URL
string SvgNamespace = "http://www.w3.org/2000/svg";

// 获取文档的根 svg 元素
Aspose.Svg.SVGSVGElement svgElement = document.RootElement;

// 创建一个图像元素并将其添加到 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);

// 创建一个 defs 元素并添加到 svgElement
Aspose.Svg.SVGDefsElement defsElement = (Aspose.Svg.SVGDefsElement)document.CreateElementNS(SvgNamespace, "defs");
svgElement.AppendChild(defsElement);

// 创建一个过滤器元素并添加到 defsElement
Aspose.Svg.SVGFilterElement filterElement = (Aspose.Svg.SVGFilterElement)document.CreateElementNS(SvgNamespace, "filter");
defsElement.AppendChild(filterElement);

// 创建一个 feGaussianBlur 元素并添加到 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);

// 保存 SVG 文档
document.Save(Path.Combine(dataDir, "gaussianBlur.svg"));

获取免费 API 许可证

您可以通过申请 免费临时许可证 来评估 API,而不受任何评估限制。

结论

在本文中,您研究并探索了如何在 C# 中以编程方式在 SVG 图像上创建高斯模糊滤镜效果。然而,您可以查看 documentation 空间来检查 API 提供的各种功能。如果您需要讨论您的任何疑虑,请随时在 论坛 上给我们写信。

也可以看看