用 Python 将 SVG 转换为 PNG
PNG 文件格式支持无损图像压缩,因此深受用户欢迎。SVG 是一种矢量格式,所有平台和应用程序可能都不支持,而 PNG 则不同,它具有通用性,可在各种软件、网站和设备上轻松使用。此外,PNG 支持透明背景,是网页图形、徽标和图像的理想选择。使用 Aspose.HTML for Python via .NET,您可以通过编程将 SVG 转换为 PNG 格式,并完全控制各种转换参数。
在这篇文章中,你将找到通过使用 Converter 类的 convert_svg() 方法和应用 ImageSaveOptions 将 SVG 转换为 PNG 的信息。此外,您还可以尝试使用在线 SVG 转换器来测试 Python API 的功能并即时转换 SVG。
在线 SVG 转换器
你可以实时将 SVG 转换为其他格式。从本地文件系统或 URL 加载 SVG,选择输出格式并运行示例。保存选项为默认设置。您将立即以单独文件的形式收到转换结果。
将 SVG 转换为 PNG
使用 convert_svg() 方法是将 SVG 转换为各种格式的最常用方法。要进行转换,可以从文件、URL 或代码字符串加载 SVG。在下面的示例中,我们从代码中创建一个 SVG 文件。
- 为 SVG 文档编写代码
- 创建一个新的 ImageSaveOptions 对象。默认情况下,“format “属性为 PNG。如果您没有为保存生成的图像设置特定选项,则将使用默认选项。
- 使用转换器类的
convert_svg(
content, base_uri, options, output_path) 方法。
1# Convert SVG to PNG using Python
2
3import os
4import aspose.html.converters as conv
5import aspose.html.saving as sav
6
7# Setup directories and define paths
8output_dir = "output/"
9if not os.path.exists(output_dir):
10 os.makedirs(output_dir)
11save_path = os.path.join(output_dir, "circle.png")
12
13# Prepare SVG code
14svg_code = """<svg xmlns="http://www.w3.org/2000/svg">
15<circle cx="100" cy="100" r="60" fill="teal" stroke="salmon" stroke-width="10" />
16</svg>"""
17
18# Initialize ImageSaveOptions
19options = sav.ImageSaveOptions()
20
21# Convert SVG to PNG
22conv.Converter.convert_svg(svg_code, ".", options, save_path)使用 ImageSaveOptions 将 SVG 转换为 PNG
PNG 图像创建功能可根据需要通过保存选项进行增强。ImageSaveOptions](6) 类为将 SVG 内容转换为图像格式提供了广泛的自定义功能。以下是对 ImageSaveOptions 各属性的说明:
- page_setup – 您可以配置输出图像的页面布局设置。这包括指定页面大小和页边距(上、下、左、右),以控制图像中 HTML 内容的位置和显示。
- horizontal_resolution – 该属性用于设置或获取处理过程中输出和内部图像的水平分辨率(单位为每英寸像素)。分辨率越高,图像越清晰,但也会增加文件大小。默认值为 300 dpi。
- vertical_resolution – 该属性设置或获取内部图像的垂直分辨率,单位为每英寸像素。默认为 300 dpi。
- background_color – 使用此属性可以设置渲染输出的背景颜色。如果未设置,默认背景色为透明色。
- css – 该属性由
CssOptions表示,允许配置在 HTML 转换为图像时如何处理 CSS 属性。 - format – 该属性决定输出图像的格式。支持的格式包括 PNG、JPEG、BMP、GIF 和 TIFF 等常用图像格式。默认格式为 PNG,但也可根据需要指定其他格式。
- use_antialiasing – 该属性控制转换过程中的图形渲染质量。它会影响图像的渲染方式,这对于抗锯齿和实现平滑、具有视觉吸引力的输出特别有用。选项通常包括高质量渲染设置,这对专业级和演示级图像至关重要。
- compression – 压缩选项允许您设置 TIFF 输出的压缩方法。支持的选项有LZW、CCITT3、CCITT4、RLE 和 NONE。压缩有助于在保持图像质量的同时减小文件大小,这对用于高质量存档和打印图像的 TIFF 文件尤为重要。
- text – 该属性为 HTML 转换为图像时的文本渲染提供配置。
要将 SVG 转换为 PNG 并指定 “ImageSaveOptions”(图像保存选项),应遵循以下几个步骤:
- 使用 SVGDocument 类的 SVGDocument() 构造函数之一加载 SVG 文件。( tulips.svg).
- 创建一个新的
ImageSaveOptions 对象并指定保存选项。默认情况下,format 属性为 PNG。
ImageSaveOptions()构造函数会初始化一个ImageSaveOptions类实例,并将其传递给convert_svg()方法。在这里,您可以设置所需的保存选项,如格式或分辨率。 - 使用
convert_svg()方法之一将 SVG 保存为 PNG 图像。在示例中,convert_svg()方法接收document、options和输出文件路径save_path并执行转换操作。
1# Convert SVG to PNG with custom settings using Python
2
3import os
4import aspose.html.dom.svg as ahsvg
5import aspose.html.converters as conv
6import aspose.html.saving as sav
7import aspose.html.drawing as dr
8
9# Setup directories and define paths
10output_dir = "output/"
11input_dir = "data/"
12if not os.path.exists(output_dir):
13 os.makedirs(output_dir)
14
15document_path = os.path.join(input_dir, "tulips.svg")
16save_path = os.path.join(output_dir, "tulips.png")
17
18# Load an SVG document
19document = ahsvg.SVGDocument(document_path)
20
21# Initialize ImageSaveOptions
22options = sav.ImageSaveOptions()
23options.page_setup.first_page = dr.Page(dr.Size(500, 500), dr.Margin(10, 10, 10, 10))
24options.css.media_type.PRINT
25
26# Convert SVG to PNG
27conv.Converter.convert_svg(document, options, save_path)在上述示例中,我们使用
page_setup属性来设置输出图像第一页的布局设置;css.media_type属性来指定 CSS 在呈现过程中使用的媒体类型。在示例中,该属性被设置为 PRINT,以应用特定于打印的 CSS 规则。通过使用为打印媒体定义的样式,这会影响输出图像的最终外观。
图中以 tulips.png 文件的一个片段为例,展示了 SVG 到 PNG 的渲染质量。

如何将 SVG 转换为图像
Aspose.HTML for Python via .NET 支持将 SVG 转换为 PNG、JPEG、BMP、TIFF 和 GIF 图像。要设置输出图像格式,只需在输出文件名中指定所需的扩展名(格式),并设置保存选项对象的 format 属性即可。
例如,要将 SVG 转换为 GIF,您需要
- 来设置格式属性:
options = sav.ImageSaveOptions(rim.ImageFormat.GIF) - 并在输出图像文件名中设置扩展名
.gif:save_path = os.path.join(output_dir, "svg-to-image.gif")
另请参见
- 要了解有关 SVG 文件的更多信息,请访问文章 什么是 SVG 文件? 优点、缺点、XML 代码。
- 下载 Aspose.HTML for Python via .NET库,它能让您成功、快速、轻松地将 HTML、MHTML、EPUB、SVG 和 Markdown 文档转换为最流行的格式。
- 使用我们的在线 SVG 到 PNG 转换器检查 SVG 到 PNG 转换的质量。上传、转换文件并在几秒钟内获得结果。现在就免费试用我们强大的 SVG 到 PNG 转换器!
- 您可以从 GitHub 下载完整的示例和数据文件。
