如何转换 SVG 文件 – C# 示例

将 SVG 文档转换为其他格式是 Aspose.SVG for .NET API 的主要功能之一。需要转换的原因有多种:以熟悉、方便的格式工作或利用不同的格式来完成特定任务。本节中的文章提供有关受支持的 SVG 转换方案列表以及如何在 C# 中执行它们的信息。

Aspose.SVG for .NET API 可以将 SVG 文件转换为 PDFXPSJPGPNGBMPTIFFGIF 文件格式。您可以在 C# 或任何其他 .NET 应用程序(例如 VB.NET)中使用 API 来开发转换器应用程序,而无需深入了解底层文件格式的详细信息。

在线 SVG 转换器

您可以使用 Aspose.SVG API 实时将 SVG 转换为其他格式。请从本地文件系统加载 SVG,选择输出格式并运行示例。在此示例中,保存选项是默认设置的。您将立即收到作为单独文件的结果。

                
            

在 C# 中转换 SVG 的几种方法

您可以通过任何方式(在线或以编程方式)将 SVG 转换为各种流行格式。从 SVG 转换为其他格式可以通过使用 Converter 类的 ConvertSVG() 方法、 SVGDocument 类的 RenderTo(device) 方法来执行类,或 Renderer 类的 Render(IDevice, TDocument) 方法。

本节介绍使用 ConverterSVGDocument 类将 SVG 文件转换为其他流行格式的受支持场景:

  1. 静态 Converter 类是一个共享外观,它提供 SVG 文件到流行格式的转换,并使这些操作变得方便和简单。多种 ConvertSVG() 方法将源文档、保存选项、输出文件路径作为参数,并将 SVG 转换为 PDF、XPS 或图像文件。
  2. SVGDocument 类的 RenderTo() 方法用于将 SVG 渲染为另一种格式并将文档发送到输出设备。 Aspose.SVG API 提供了以下输出设备实现: PdfDeviceXpsDeviceImageDevice 类,分别执行 PDF、XPS 和 Image 文件格式的渲染。
  3. Renderer 类的 Render(IDevice, TDocument) 方法使您能够一次将多个文档发送到输出渲染设备并合并它们。更多信息,请参阅文章 如何合并SVG文档

让我们考虑将 SVG 文档转换为另一种文件格式的两种情况,例如,将 SVG 转换为 PNG:

您可以从 GitHub 下载完整的示例和数据文件。关于从 GitHub 下载并运行示例,您可以从 如何运行示例 部分找到。

使用 ConvertSVG() 方法将 SVG 转换为 PNG

使用 ConvertSVG() 方法将文件转换为另一种格式是一系列操作,其中文档加载和保存:

1using Aspose.Svg;
2using System.IO;
3using Aspose.Svg.Saving;
4using Aspose.Svg.Converters;
 1// Convert an SVG file to PNG in C# using ConvertSVG()
 2
 3// Initialize an SVG document from a file
 4using (SVGDocument document = new SVGDocument(Path.Combine(DataDir, "svg-to-png.svg")))
 5{
 6    // Create an instance of the ImageSaveOptions class
 7    ImageSaveOptions pngSaveOptions = new ImageSaveOptions();
 8
 9    // Convert SVG to PNG
10    Converter.ConvertSVG(document, pngSaveOptions, Path.Combine(OutputDir, "svg-to-png.png"));
11}

在该示例中, ImageSaveOptions() 构造函数初始化传递给 ConvertSVG() 方法的 ImageSaveOptions 类的实例。 ConvertSVG(source, options, outputPath) 方法获取所需的属性并执行转换操作。

该图展示了 svg-to-png.png 文件。

文本“svg-to-png.svg 文件渲染为 PNG”

使用 RenderTo() 方法将 SVG 转换为 PNG

要使用 RenderTo() 方法将 SVG 转换为 PNG,请执行以下步骤:

1using Aspose.Svg;
2using System.IO;
3using Aspose.Svg.Rendering.Image;
 1// Render an SVG document to PNG in C# using RenderTo()
 2
 3// Open a source SVG document
 4using (SVGDocument document = new SVGDocument(Path.Combine(DataDir, "light.svg")))
 5{
 6    // Initialize an instance of the ImageRenderingOptions class 
 7    ImageRenderingOptions pngOptions = new ImageRenderingOptions();
 8
 9    // Initialize an instance of the ImageDevice class and specify an output file to render
10    using (ImageDevice device = new ImageDevice(pngOptions, Path.Combine(OutputDir, "light_out.png")))
11    {
12        // Render SVG to PNG
13        document.RenderTo(device);
14    }
15}

ImageDevice(options, file) 构造函数将 ImageRenderingOptions 类的实例、输出文件名作为参数,并初始化 ImageDevice 类的新实例。 RenderTo(device) 方法转换当前文档并将其发送到输出渲染设备。

该图展示了 SVG 到 PNG 转换的结果 – light.png 文件。

文本“使用 RenderTo() 方法渲染为 PNG 的 light.svg 文件”

常规选项

您可以通过指定页面大小、边距、背景颜色等来自定义渲染过程。为了将 SVG 转换为上述所有格式,请从 RenderingOptions 类继承以下属性:BackgroundColor, Css, HorizontalResolution, PageSetup, VerticalResolution

每个输出设备 PdfDevice、XpsDevice 和 ImageDevice 都有自己独特的一组选项,分别通过类 PdfRenderingOptionsXpsRenderingOptionsImageRenderingOptions 实现。

使用 PdfSaveOptionsXpsSaveOptionsImageSaveOptions 类实现的选项分别继承自 PdfRenderingOptions、XpsRenderingOptions 和 ImageRenderingOptions 类。

Aspose.SVG 提供免费的在线 SVG 转换器,用于将 SVG 文件转换为各种流行格式。您可以轻松地将 SVG 转换为 PDF、SVG 转换为 XPS、SVG 转换为 JPG、SVG 转换为 PNG、SVG 转换为 BMP、SVG 转换为 TIFF、SVG 转换为 GIF。只需选择一个文件,选择要转换的格式,即可完成。它速度快而且完全免费!

文本“横幅 SVG 转换器”