您是否曾經遇到過想要從網頁或實時 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 的能力為數字創造力帶來了新的維度。無論是歸檔鼓舞人心的圖形、分析設計趨勢還是增強您自己的項目,本文概述的步驟都表明該過程相對簡單並且只需要幾行代碼。如有任何疑問,請隨時通過我們的免費支持論壇與我們聯繫。