Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Quick Answer: 使用
SVGDocument 加载 SVG 文件,创建
ImageSaveOptions,设置图像 format,然后调用
Converter.convert_svg(document, options, output_path)。使用 ImageSaveOptions 控制背景颜色、页面大小、边距和输出分辨率。
Aspose.SVG for Python via .NET 可将 SVG 文档转换为 JPG、BMP、TIFF、GIF 和 PNG 等栅格图像格式。不需要透明度时使用 JPG,透明栅格输出使用 PNG,发布和图像处理工作流使用 TIFF,简单位图输出使用 BMP,轻量栅格输出使用 GIF。
针对具体格式的教程,请参见 在 Python 中将 SVG 转换为 PNG 和 在 Python 中将 SVG 转换为 JPG。本文关注更通用的 SVG 到图像工作流和格式选择。
运行示例前,请在 Python 环境中 安装 Aspose.SVG for Python via .NET。
下面的示例使用 SVGDocument、 ImageSaveOptions 和 Converter.convert_svg() 将 SVG 文件转换为 JPG,并设置自定义背景、页面大小、边距和分辨率。JPG 不支持透明度,因此通常需要设置背景颜色。
1import os
2from aspose.svg import SVGDocument
3from aspose.svg.converters import Converter
4from aspose.svg.drawing import Margin, Page, Resolution, Size
5from aspose.svg.rendering.image import ImageFormat
6from aspose.svg.saving import ImageSaveOptions
7from aspose.pydrawing import Color
8
9# Convert SVG to JPG with custom background, page size, and resolution
10input_folder = "data/"
11output_folder = "output/"
12input_path = os.path.join(input_folder, "christmas-tree.svg")
13output_path = os.path.join(output_folder, "christmas-tree.jpg")
14os.makedirs(output_folder, exist_ok=True)
15
16options = ImageSaveOptions()
17options.format = ImageFormat.JPEG
18options.background_color = Color.from_argb(233, 255, 241)
19options.page_setup.any_page = Page(Size(450, 450), Margin(20, 20, 20, 20))
20options.horizontal_resolution = Resolution.from_dots_per_inch(96.0)
21options.vertical_resolution = Resolution.from_dots_per_inch(96.0)
22
23with SVGDocument(input_path) as document:
24 Converter.convert_svg(document, options, output_path)下图显示源 SVG 和带自定义背景色的 JPG 转换结果。

要将 SVG 保存为其他图像格式,请设置
ImageSaveOptions.format 并使用匹配的文件扩展名。例如,可使用
ImageFormat 值,例如 ImageFormat.GIF 搭配 .gif,ImageFormat.BMP 搭配 .bmp,或 ImageFormat.TIFF 搭配 .tiff。
1options.format = ImageFormat.GIF
2output_path = os.path.join(output_folder, "image.gif")| 属性 | 控制内容 |
|---|---|
| format | JPG、PNG、BMP、TIFF 或 GIF 等目标图像格式 |
| background_color | 透明 SVG 区域的背景颜色 |
| page_setup | 输出图像尺寸、边距和页面布局 |
| horizontal_resolution | 水平输出分辨率,单位为每英寸像素 |
| vertical_resolution | 垂直输出分辨率,单位为每英寸像素 |
| smoothing_mode | 形状和边缘的渲染质量 |
| compression | TIFF 压缩设置 |
ImageSaveOptions 从
ImageRenderingOptions 继承图像渲染设置,因此转换器工作流和设备工作流共享许多输出属性。
render_to() 方法将 SVG 内容发送到
ImageDevice。当应用已经使用渲染设备,或需要明确选择目标设备时,此模式很有用。
1import os
2from aspose.svg import SVGDocument
3from aspose.svg.drawing import Margin, Page, Resolution, Size
4from aspose.svg.rendering.image import ImageDevice, ImageFormat, ImageRenderingOptions
5
6# Render SVG to JPG through an ImageDevice
7input_folder = "data/"
8output_folder = "output/"
9input_path = os.path.join(input_folder, "image.svg")
10output_path = os.path.join(output_folder, "image.jpg")
11os.makedirs(output_folder, exist_ok=True)
12
13options = ImageRenderingOptions()
14options.format = ImageFormat.JPEG
15options.horizontal_resolution = Resolution.from_dots_per_inch(96.0)
16options.vertical_resolution = Resolution.from_dots_per_inch(96.0)
17options.page_setup.any_page = Page(Size(600, 600), Margin(10, 10, 10, 10))
18
19with SVGDocument(input_path) as document:
20 with ImageDevice(options, output_path) as device:
21 document.render_to(device)| 问题 | 可能原因 | 修复方法 |
|---|---|---|
| JPG 输出有黑色或意外背景 | JPG 不支持透明度 | 转换前设置 options.background_color |
| 输出图像被裁剪或过大 | 页面设置与 SVG viewport 或所需输出尺寸不匹配 | 使用 Page、Size 和 Margin 配置 page_setup.any_page |
| 图像模糊 | 输出分辨率或页面大小太低 | 提高 horizontal_resolution、vertical_resolution 或输出尺寸 |
| 生成了错误格式 | 图像格式和文件扩展名不匹配 | 明确设置 options.format 和输出文件扩展名 |
| 外部图像或 CSS 缺失 | 转换期间无法解析相对资源 | 将资源保留在 SVG 文件旁边,或使用正确的绝对路径 |
使用免费的在线 SVG to JPG Converter 或通用 SVG Converter 在 Python 实现前测试 SVG 到图像转换。
使用 SVGDocument 加载 SVG,将 ImageSaveOptions.format 设置为 ImageFormat.JPEG,然后调用 Converter.convert_svg(document, options, output_path)。
可以。将 options.format 改为所需的 ImageFormat 值,并使用匹配的输出文件扩展名。
JPG 不支持透明度。背景颜色可以让转换后图像中的透明 SVG 区域结果可预测。
可以。使用 Page、Size 和 Margin 配置 options.page_setup.any_page,并在需要时设置分辨率。
普通文件转换使用 Converter.convert_svg()。需要 ImageDevice 渲染设备工作流时使用 render_to()。
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.