每當 Web 上的圖像需要透明度時,PNG 就是我想到的格式之一。由於其可擴展性,SVG 圖像也是常用的圖像格式之一。對於顯示小型靜態圖像、徽標和具有透明背景的圖像,通常首選 PNG 圖像。由於兼容性或任何其他原因,經常需要將 SVG 矢量圖形轉換為其他格式。本文討論如何使用 C# 將 SVG 矢量圖形轉換為 PNG 圖像。

使用 C# 將 SVG 轉換為 PNG(灰度、旋轉、翻轉、亮水印)

.NET API 轉換圖像

GroupDocs 通過其 Conversion API 使開發人員能夠將圖像格式轉換為各種其他格式。轉換後的圖像也可以在轉換過程中使用不同的高級選項進行更改。在本文中,我將使用其 GroupDocs.Conversion for .NET 將 SVG 矢量圖像轉換為 PNG 圖像。

您可以從下載部分 下載 DLL 或 MSI 安裝程序,或者通過 NuGet 將其包添加到您的 .NET 應用程序來安裝 API。

PM> Install-Package GroupDocs.Conversion

GitHub 上還提供了其功能的運行示例。訪問其 文檔API 參考 以獲得指導。

使用 C# 將 SVG 轉換為 PNG 圖像

讓我們從使用默認設置將矢量圖形轉換為 PNG 格式開始。以下步驟展示瞭如何使用 C# 將 SVG 圖像轉換為 PNG。

  • 使用 Converter 類加載 SVG 文件。
  • 準備圖像轉換選項。
  • 將轉換文件類型設置為 PNG。
  • 使用準備好的選項調用 Convert() 方法。

以下 C# 源代碼將 SVG 轉換為 PNG 圖像。

// 如何在 C# 中使用帶默認選項的 .NET 轉換 API 將 SVG 文件轉換為 PNG 格式
using (Converter converter = new Converter("path/vector-graphics.svg"))
{
    ImageConvertOptions options = new ImageConvertOptions
    {
        Format = ImageFileType.Png
    };
    converter.Convert("path/svg-to-png.png", options);
}

使用 C# 使用高級選項將 SVG 轉為 PNG 圖像

在轉換矢量圖形時,可以對 PNG 輸出應用各種自定義。以下是我們可以調整的一些 PNG 圖像特徵:

  • 亮度
  • 對比
  • 伽馬
  • 灰階
  • 翻轉模式(水平/垂直)
  • 旋轉角度
  • 高度
  • 寬度
  • 水印

以下步驟展示瞭如何將 SVG 圖像轉換為 PNG,以及如何進一步對生成的 PNG 文件應用調整。

  • 使用 Converter 類加載 SVG 圖形。
  • 準備圖像轉換選項。
  • 將轉換文件類型設置為 PNG。
  • 定義選擇性定制並調整它們的值。
  • 使用帶有準備好的選項的 Convert() 方法轉換為 PNG 圖像。

以下源代碼使用 C# 將 SVG 中的自定義應用到 PNG 轉換。您可以為所需的 PNG 輸出應用任何這些效果或效果組合。

// 使用各種自定義將 SVG 文件轉換為 C# 中的 PNG 格式
using (Converter converter = new Converter("path/vector-graphics.svg"))
{
    ImageConvertOptions options = new ImageConvertOptions
    {
        Format = ImageFileType.Png,
        FlipMode = ImageFlipModes.FlipY,
        RotateAngle = 45, 
        Grayscale = true
        /*
        Brightness = 50,
        Contrast = 50,
        Gamma = 0.5F,
        */
    };
    // 在轉換後的圖像上應用水印
    WatermarkOptions watermark = new WatermarkTextOptions("Watermark")
    {
        Color = Color.Blue,
        Width = 150,
        Height = 150,
        Background = false,
        Top = 50,
        Left = 50,
        RotationAngle = -45,
        Transparency = 50,
    };
    options.Watermark = watermark;
    
    converter.Convert("path/svg-to-png-customized.png", options);
}

獲取免費的 API 許可證

您可以獲得 免費臨時許可證 以在不受評估限制的情況下使用 API。

結論

讓我們總結一下。我們學習了在 .NET 應用程序中使用 C# 將 SVG 矢量圖形轉換為 PNG 格式的基礎知識和一些高級轉換。我們進一步學習瞭如何在轉換為 PNG 格式時對 SVG 文件進行旋轉、翻轉或添加水印。此外,我們學會了微調伽馬和亮度,以及如何打開和關閉灰度選項。

嘗試運行 GitHub 中的示例,這將幫助您構建自己的 SVG 到 PNG 轉換器,類似於 groupdocs.app 中提供的轉換器。如有任何疑問,請通過 論壇 聯繫我們。

也可以看看