如何转换 SVG 文件 – C# 示例
将 SVG 文档转换为其他格式是 Aspose.SVG for .NET API 的主要功能之一。需要转换的原因有多种:以熟悉、方便的格式工作或利用不同的格式来完成特定任务。本节中的文章提供有关受支持的 SVG 转换方案列表以及如何在 C# 中执行它们的信息。
Aspose.SVG for .NET API 可以将 SVG 文件转换为 PDF、XPS、JPG、PNG、 BMP、TIFF 和 GIF 文件格式。您可以在 C# 或任何其他 .NET 应用程序(例如 VB.NET)中使用 API 来开发转换器应用程序,而无需深入了解底层文件格式的详细信息。
在线 SVG 转换器
您可以使用 Aspose.SVG API 实时将 SVG 转换为其他格式。请从本地文件系统加载 SVG,选择输出格式并运行示例。在此示例中,保存选项是默认设置的。您将立即收到作为单独文件的结果。
在 C# 中转换 SVG 的几种方法
您可以通过任何方式(在线或以编程方式)将 SVG 转换为各种流行格式。从 SVG 转换为其他格式可以通过使用
Converter 类的
ConvertSVG() 方法、
SVGDocument 类的
RenderTo(device
) 方法来执行类,或
Renderer 类的 Render(IDevice, TDocument
) 方法。
本节介绍使用 Converter 和 SVGDocument 类将 SVG 文件转换为其他流行格式的受支持场景:
- 静态 Converter 类是一个共享外观,它提供 SVG 文件到流行格式的转换,并使这些操作变得方便和简单。多种 ConvertSVG() 方法将源文档、保存选项、输出文件路径作为参数,并将 SVG 转换为 PDF、XPS 或图像文件。
- SVGDocument 类的 RenderTo() 方法用于将 SVG 渲染为另一种格式并将文档发送到输出设备。 Aspose.SVG API 提供了以下输出设备实现: PdfDevice、 XpsDevice 和 ImageDevice 类,分别执行 PDF、XPS 和 Image 文件格式的渲染。
- Renderer 类的 Render(
IDevice, TDocument
) 方法使您能够一次将多个文档发送到输出渲染设备并合并它们。更多信息,请参阅文章 如何合并SVG文档。
让我们考虑将 SVG 文档转换为另一种文件格式的两种情况,例如,将 SVG 转换为 PNG:
使用 ConvertSVG() 方法将 SVG 转换为 PNG
使用 ConvertSVG() 方法将文件转换为另一种格式是一系列操作,其中文档加载和保存:
- 使用 SVGDocument() 构造函数之一 ( svg-to-png.svg) 加载 SVG 文档。
- 创建 ImageSaveOptions 类的实例。
- 使用 ConvertSVG() 方法之一将 SVG 保存为 PNG 文件。
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 文件。
使用 RenderTo() 方法将 SVG 转换为 PNG
要使用 RenderTo() 方法将 SVG 转换为 PNG,请执行以下步骤:
- 使用 SVGDocument() 构造函数之一 ( light.svg) 初始化文档。
- 生成 ImageRenderingOptions 类的实例。
- 创建 ImageDevice 类的新实例。
- 通过
RenderTo(
device
) 方法转换文档。
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 文件。
常规选项
您可以通过指定页面大小、边距、背景颜色等来自定义渲染过程。为了将 SVG 转换为上述所有格式,请从
RenderingOptions 类继承以下属性:BackgroundColor
, Css
, HorizontalResolution
, PageSetup
, VerticalResolution
。
每个输出设备 PdfDevice、XpsDevice 和 ImageDevice 都有自己独特的一组选项,分别通过类 PdfRenderingOptions、 XpsRenderingOptions 和 ImageRenderingOptions 实现。
使用 PdfSaveOptions、 XpsSaveOptions 和 ImageSaveOptions 类实现的选项分别继承自 PdfRenderingOptions、XpsRenderingOptions 和 ImageRenderingOptions 类。
Aspose.SVG 提供免费的在线 SVG 转换器,用于将 SVG 文件转换为各种流行格式。您可以轻松地将 SVG 转换为 PDF、SVG 转换为 XPS、SVG 转换为 JPG、SVG 转换为 PNG、SVG 转换为 BMP、SVG 转换为 TIFF、SVG 转换为 GIF。只需选择一个文件,选择要转换的格式,即可完成。它速度快而且完全免费!