您是否曾经遇到过想要从网页或实时 URL 保存或下载 SVG 图像的情况?可扩展矢量图形 (SVG) 是网页上使用的一种流行的图像格式。 SVG 图像是基于矢量的,这意味着它们由数学对象组成,可以缩放到任何大小而不损失质量。这使得它们成为存储和显示图像的通用且高效的格式。在这篇博文中,我们将讨论如何使用 C# 从网站中提取 SVG。
本文涵盖以下主题:
从网站提取 SVG 的 C# API
我们将使用 Aspose.HTML for .NET 从网站中提取 SVG。它允许开发人员操纵和处理 HTML 文档。它可用于在 .NET 应用程序中自动操作、转换或分析 HTML 文档。开发人员可以通过实施即用型解决方案以编程方式处理 HTML 相关任务来节省时间和精力。它还允许将 HTML 网页和文档转换为支持的格式,无需任何外部软件。
请下载 API 的 DLL 或使用 NuGet 安装它。
PM> Install-Package Aspose.Html
用 C# 从网站中提取 SVG
我们可以使用提取所有嵌入的SVG图像<svg>
元素按照以下步骤操作:
- 使用 HTMLDocument 类加载网页。
- 使用 GetElementsByTagName() 方法读取所有内联 SVG 图像。
- 最后,循环遍历所有图像并保存到本地文件系统。
以下代码示例展示了如何使用 C# 从网站中提取 SVG。
// 以下代码示例演示了如何使用 C# 从网站中提取 SVG。
using Aspose.Html;
string OutputDir = "C:\\Files\\Internal\\";
// 打开要从中提取内联 SVG 图像的文档
using var document = new HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-shapes/");
// 收集所有内联 SVG 图像
var images = document.GetElementsByTagName("svg");
for (var i = 0; i < images.Length; i++)
{
// 将每个 SVG 图像保存到本地文件系统
File.WriteAllText(Path.Combine(OutputDir, $"{i}.svg"), images[i].OuterHTML);
}
使用 C# 从网站下载外部 SVG 图像
我们可以按照以下步骤提取存储在 HTML 文档外部的所有 SVG 图像并将其加载到文档中:
- 使用 HTMLDocument 类加载网页。
- 使用 GetElementsByTagName() 方法读取所有内联 SVG 图像。
- 最后,循环遍历所有图像并保存到本地文件系统。
以下代码示例展示了如何使用 C# 从网站中提取外部嵌入的 SVG。
using Aspose.Html;
using Aspose.Html.Net;
// 文件目录
string OutputDir = "C:\\Files\\";
// 打开要从中提取外部 SVG 的文档
using var document = new HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-shapes/");
// 收集所有图像元素
var images = document.GetElementsByTagName("img");
// 创建相对图像 URL 的不同集合
var urls = images.Select(element => element.GetAttribute("src")).Distinct();
// 过滤掉非 SVG 图像
var svgUrls = urls.Where(url => url.EndsWith(".svg"));
// 创建绝对 SVG 图像 URL
var absUrls = svgUrls.Select(src => new Url(src, document.BaseURI));
foreach (var url in absUrls)
{
// 创建提取请求
using var request = new RequestMessage(url);
// 提取 SVG
using var response = document.Context.Network.Send(request);
// 检查是否响应成功
if (response.IsSuccess)
{
// 将 SVG 图像保存到本地文件系统
File.WriteAllBytes(Path.Combine(OutputDir, url.Pathname.Split('/').Last()), response.Content.ReadAsByteArray());
}
}
获取免费许可证
您可以获得免费的临时许可证来尝试 Aspose.HTML for .NET,而不受评估限制。
从网站提取 SVG – 学习资源
您可以了解有关从网站提取 SVG 的更多信息,并使用以下资源探索该库的各种其他功能:
结论
在本文中,我们学习了如何使用 C# 从网站中提取 SVG。从网站或网页中提取 SVG 的能力为数字创造力带来了新的维度。无论是归档鼓舞人心的图形、分析设计趋势还是增强您自己的项目,本文概述的步骤都表明该过程相对简单并且只需要几行代码。如有任何疑问,请随时通过我们的免费支持论坛与我们联系。