每当网络上的图像需要透明度时,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 图像。

// 如何使用带有默认选项的 .NET Conversion API 在 C# 中将 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 中提供的转换器。如有任何疑问,请通过 论坛 联系我们。

也可以看看