使用 Python 将 SVG 转换为图像、JPG、PNG、BMP、TIFF 和 GIF
在本文中,您将找到有关如何将 SVG 转换为图像文件格式的信息,例如 JPG、PNG、BMP、TIFF和 GIF。网站开发、平面设计师表演、摄影和其他目的都需要图像文件转换。图像格式的选择取决于您是否以印刷方式打印、通过电子邮件发送或将图像放在网页上。
本文提供了 Aspose.SVG for Python via .NET 的转换功能的一般描述,并描述了使用 Converter 和 SVGDocument 类支持的 SVG 到图像转换方案。
要继续学习本教程,您应该在 Python 项目中 安装和配置 Aspose.SVG for Python via .NET 库。我们的代码示例可帮助您使用 Python 库转换 SVG 文件。
在线 SVG 转换器
您可以通过任何方式(在线或以编程方式)将 SVG 转换为图像和其他流行格式。检查 Aspose.SVG API 功能并实时转换 SVG!请从本地文件系统或 URL 加载 SVG,选择输出格式并运行示例。在示例中,保存选项是默认设置的。您将立即收到作为单独文件的结果。
如果您想在Python中以编程方式将SVG转换为图像格式,请参阅以下转换场景和Python代码示例。
将 SVG 转换为 JPG
JPG 格式提供高压缩率且质量损失最小,非常适合在文件大小很重要的网络上使用。它得到跨设备和平台的广泛支持,确保兼容性和易于共享。此外,JPG 处理复杂颜色变化的能力使其成为照片和真实图像的理想选择。
使用convert_svg()
方法
使用 convert_svg() 方法是将 SVG 转换为各种流行格式的最常见方法。您可以通过编程方式将 SVG 转换为 JPG 或其他格式,并完全控制各种转换参数。以下代码片段展示了如何将 SVG 转换为 JPG 并指定背景颜色、页面大小、边距以及垂直和水平分辨率。此外,以下 Python 示例将展示如何在文件系统中配置源文件和输出文件的路径:
- 使用
Configuration
类的 set_extension() 方法注册SkiaSharp
扩展。SkiaSharp
模块是一个用于渲染 SVG 内容的图形库。它确保渲染引擎支持转换所需的操作。 - 创建
ImageSaveOptions 类的实例并指定所需的保存选项:
- 使用
format
属性设置图像格式。 - 使用
background_color
属性设置填充背景的颜色。 - 使用
page_setup
属性设置页面大小和边距。 - 使用
horizontal_resolution
和vertical_resolution
属性设置输出图像的水平和垂直分辨率。
- 使用
- 使用 SVGDocument 类打开源 SVG 文档。
- 使用 convert_svg() 方法将 SVG 转换并保存为图像文件。
1import os
2import aspose
3from aspose.svg import *
4from aspose.svg.converters import *
5from aspose.svg.drawing.skiasharp import *
6from aspose.svg.rendering import *
7from aspose.svg.drawing import *
8from aspose.svg.saving import *
9
10# Initialize an SVG document from a file
11input_folder = "data/"
12output_folder = "output/"
13src_file = os.path.join(input_folder, "сhristmas-tree.svg")
14output_file = os.path.join(output_folder, "сhristmas-tree.jpg")
15if not os.path.exists(output_folder):
16 os.makedirs(output_folder)
17
18# Activate the Aspose.SVG.Drawing.SkiaSharp feature
19Configuration.set_extension(SkiaModule())
20options = ImageSaveOptions()
21options.format.JPEG
22options.background_color = aspose.pydrawing.Color.from_argb(233, 255, 241)
23options.page_setup.any_page = Page(Size(450, 450), Margin(20, 20, 20, 20))
24options.horizontal_resolution = Resolution.from_dots_per_inch(96.0)
25options.vertical_resolution = Resolution.from_dots_per_inch(96.0)
26with SVGDocument(src_file) as document:
27
28 # Convert SVG to JPG
29 Converter.convert_svg(document, options, output_file)
您可以通过试用我们的产品来评估转化质量。在这里,我们提供一个说明 - 下图显示了原始 сhristmas-tree.svg 图像 (a) 和转换后的 сhristmas-tree.jpg 图像(具有新的背景颜色)(b):
如何将 SVG 转换为图像
Aspose.SVG for Python via .NET 支持将 SVG 转换为图像格式,例如 PNG、JPG、JPEG、BMP、TIFF、GIF 和 WEBP。您可以使用上面的 Python 代码来实现此目的;要更改输出图像格式,只需在输出文件名中指定所需的扩展名(格式)并设置format
属性即可。
例如,要将 SVG 转换为 GIF ,您需要:
1.设置format
属性:options.format.GIF
,
2.并在输出图像文件名中设置扩展名.gif
:output_file = os.path.join(output_folder, "image.gif")
。
图像保存选项 – ImageSaveOptions 类
Aspose.SVG 允许使用默认或自定义保存选项将 SVG 转换为图像文件格式。 ImageSaveOptions 使用使您能够自定义渲染过程。例如,您可以指定图像格式、页面大小、边距、背景颜色等。
Property | Description |
---|---|
compression | Sets Tagged Image File Format (TIFF) Compression. By default, this property is LZW. |
css | Gets a CssOptions object which is used for configuration of CSS properties processing. |
format | Sets the ImageFormat (JPG, PNG, BMP, TIFF, or GIF). By default, this property is PNG. |
background_color | This property sets the color that will fill the background. By default, this property is transparent. |
page_setup | This property allows you to define the layout of the page, including dimensions and margins. |
horizontal_resolution | Sets the horizontal resolution for output and internal images in pixels per inch (dpi). By default, this property is set to 300 dpi, which is used unless overridden by specific conditions. The resolution is always applied unless the Page size is set in pixels (px), in which case the default resolution is 96 dpi. |
vertical_resolution | Sets the vertical resolution for output and internal images in pixels per inch (dpi). By default, this property is set to 300 dpi, which is used unless overridden by specific conditions. The resolution is always applied unless the Page size is set in pixels (px), in which case the default resolution is 96 dpi. |
smoothing_mode | This property sets the rendering quality for this image. |
text | Gets a TextOptions object which is used for configuration of text rendering. |
注意:使用 ImageSaveOptions 类实现的选项继承自 ImageRenderingOptions 类。
使用render_to()
方法
考虑如何使用 render_to() 方法将文档从 SVG 转换为 JPG:
- 使用 SVGDocument() 类初始化 SVG 文档。
- 创建
ImageRenderingOptions 类的实例。如果需要设置图像格式、水平和垂直分辨率、页面大小和边距:
- 使用
format
属性设置图像格式。 - 使用
horizontal_resolution
和vertical_resolution
属性设置输出图像的水平和垂直分辨率。 - 使用
page_setup
属性设置页面大小和边距。
- 使用
- 创建 ImageDevice 类的新实例。
- 使用 SVGDocument 类的
render_to(
device
) 方法将 SVG 转换为 JPG。
以下示例显示如何应用page_setup
、horizontal_resolution
和vertical_resolution
属性将 SVG 转换为 JPG:
1import os
2from aspose.svg import *
3from aspose.svg.drawing.skiasharp import *
4from aspose.svg.rendering import *
5from aspose.svg.drawing import *
6from aspose.svg.rendering.image import *
7
8# Initialize an SVG document from a file
9input_folder = "data/"
10output_folder = "output/"
11src_file = os.path.join(input_folder, "image.svg")
12output_file = os.path.join(output_folder, "image.jpg")
13if not os.path.exists(output_folder):
14 os.makedirs(output_folder)
15
16with SVGDocument(src_file) as document:
17 # Initialize an instance of the ImageRenderingOptions class and set custom properties
18 image_rendering_options = ImageRenderingOptions()
19 image_rendering_options.format = ImageFormat.JPEG
20 image_rendering_options.horizontal_resolution = Resolution.from_dots_per_inch(96.0)
21 image_rendering_options.vertical_resolution = Resolution.from_dots_per_inch(96.0)
22 image_rendering_options.page_setup.any_page = Page(Size(600, 600), Margin(10, 10, 10, 10))
23
24 # Initialize an instance of the ImageDevice class
25 with ImageDevice(image_rendering_options, output_file) as device:
26 # Render SVG to JPG and send the document to the rendering device
27 document.render_to(device)
您可以使用上述 Python 代码将 SVG 转换为 PNG、JPG、JPEG、BMP、TIFF、GIF 和 WEBP 等图像格式。要更改输出图像格式,您需要在输出文件名中指定所需的扩展名(格式)并设置format
属性。
例如,要将 SVG 转换为 BMP,只需设置 format 属性:
image_rendering_options.format = ImageFormat.BMP
,
并在输出图像文件名中设置扩展名.bmp
:
output_file = os.path.join(output_folder, "image.bmp")
。
图像渲染选项 – ImageRenderingOptions 类
Aspose.SVG for Python via .NET 中的
ImageRenderingOptions 类提供了一组选项来控制如何将 SVG 文档渲染为图像格式。 ImageRenderingOptions
类与特定设备 ImageDevice
结合使用,它表示渲染的 SVG 内容的目标输出图像格式。
此类允许您微调渲染过程以满足特定要求。以下是与 ImageRenderingOptions 类关联的关键属性:
Property | Description |
---|---|
compression | Sets Tagged Image File Format (TIFF) Compression. By default, this property is LZW. |
css | This property gets a CssOptions object, which is used for the configuration of CSS properties processing. |
format | Sets the ImageFormat (JPG, PNG, BMP, TIFF, or GIF). By default, this property is PNG. |
background_color | This property allows you to set the background color for the rendered output. If not set, the default background is transparent. |
page_setup | This property allows you to define the layout of the page, including dimensions and margins. |
horizontal_resolution | Sets the horizontal resolution for output and internal images in pixels per inch (dpi). By default, this property is set to 300 dpi, which is used unless overridden by specific conditions. The resolution is always applied unless the Page size is set in pixels (px), in which case the default resolution is 96 dpi. |
vertical_resolution | Sets the vertical resolution for output and internal images in pixels per inch (dpi). By default, this property is set to 300 dpi, which is used unless overridden by specific conditions. The resolution is always applied unless the Page size is set in pixels (px), in which case the default resolution is 96 dpi. |
smoothing_mode | This property sets the rendering quality for this image. |
text | Gets a TextOptions object which is used for configuration of text rendering. |
您可以尝试我们的免费在线 SVG 到 JPG 转换器,它的工作质量高,简单且快速。只需上传 SVG、进行转换,几秒钟内即可获得结果!它快速、简单且完全免费!