用 C# 從網站中提取 SVG

您是否曾經遇到過想要從網頁或實時 URL 保存或下載 SVG 圖像的情況?可擴展矢量圖形 (SVG) 是網頁上使用的一種流行的圖像格式。 SVG 圖像是基於矢量的,這意味著它們由數學對象組成,可以縮放到任何大小而不損失質量。這使得它們成為存儲和顯示圖像的通用且高效的格式。在這篇博文中,我們將討論如何使用 C# 從網站中提取 SVG。

本文涵蓋以下主題:

  1. 從網站提取 SVG 的 C# API
  2. 從網站提取 SVG
  3. 從網站下載外部 SVG 圖像
  4. 免費學習資源

從網站提取 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> 元素按照以下步驟操作:

  1. 使用 HTMLDocument 類加載網頁。
  2. 使用 GetElementsByTagName() 方法讀取所有內聯 SVG 圖像。
  3. 最後,循環遍歷所有圖像並保存到本地文件系統。

以下代碼示例展示瞭如何使用 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

用 C# 從網站中提取 SVG

使用 C# 從網站下載外部 SVG 圖像

我們可以按照以下步驟提取存儲在 HTML 文檔外部的所有 SVG 圖像並將其加載到文檔中:

  1. 使用 HTMLDocument 類加載網頁。
  2. 使用 GetElementsByTagName() 方法讀取所有內聯 SVG 圖像。
  3. 最後,循環遍歷所有圖像並保存到本地文件系統。

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

也可以看看