如何转换 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;
 5...
 6
 7    // Initialize an SVG document from a file
 8    using (var document = new SVGDocument(Path.Combine(DataDir, "svg-to-png.svg")))
 9    {
10        // Create an instance of the ImageSaveOptions class
11    	var pngSaveOptions = new ImageSaveOptions();
12
13        // Convert SVG to PNG
14    	Converter.ConvertSVG(document, pngSaveOptions, Path.Combine(OutputDir, "svg-to-png.png"));
15    }

在该示例中, 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;
 4...
 5
 6	// Open a source SVG document 
 7	using (var document = new SVGDocument(Path.Combine(DataDir, "light.svg")))
 8	{
 9	    // Initialize an instance of the ImageRenderingOptions class 
10		var pngOptions = new ImageRenderingOptions();
11
12		// Initialize an instance of ImageDevice and specify the output file to render
13	    using (var device = new ImageDevice(pngOptions, Path.Combine(OutputDir, "light_out.png")))
14	    {
15	        // Render SVG to PNG
16			document.RenderTo(device);
17		}
18	}

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 转换器”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.