Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Quick Answer: Загрузите SVG через
SVGDocument, создайте
ImageSaveOptions, задайте формат изображения и вызовите
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 – для легковесного растрового вывода.
Для отдельных руководств см. Конвертировать SVG в PNG в Python и Конвертировать SVG в JPG в Python. Эта статья фокусируется на общем сценарии SVG-to-image и выборе формата.
Перед запуском примеров установите Aspose.SVG for Python via .NET в вашей Python-среде.
Следующий пример использует 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 | Размер выходного изображения, поля и layout страницы |
| horizontal_resolution | Горизонтальное разрешение вывода в пикселях на дюйм |
| vertical_resolution | Вертикальное разрешение вывода в пикселях на дюйм |
| smoothing_mode | Качество рендеринга фигур и краев |
| compression | Настройки сжатия TIFF |
ImageSaveOptions наследует настройки рендеринга изображений от
ImageRenderingOptions, поэтому многие свойства совпадают для сценариев через converter и через устройство рендеринга.
Метод
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 перед конвертацией |
| Выходное изображение обрезано или слишком большое | Настройка страницы не соответствует viewport SVG или желаемому размеру вывода | Настройте page_setup.any_page с помощью Page, Size и Margin |
| Изображение размыто | Разрешение или размер страницы слишком малы | Увеличьте horizontal_resolution, vertical_resolution или размеры вывода |
| Создан не тот формат | Формат изображения и расширение файла не совпадают | Задавайте и options.format, и расширение выходного файла осознанно |
| Внешние изображения или CSS отсутствуют | Относительные ресурсы не могут быть разрешены при конвертации | Держите ресурсы рядом с SVG-файлом или используйте корректные абсолютные пути |
Используйте бесплатный онлайн SVG to JPG Converter или общий SVG Converter, чтобы проверить SVG-to-image конвертацию перед реализацией в Python.
Загрузите SVG через SVGDocument, задайте ImageSaveOptions.format = ImageFormat.JPEG и вызовите Converter.convert_svg(document, options, output_path).
Да. Измените options.format на нужное значение ImageFormat и используйте соответствующее расширение выходного файла.
JPG не поддерживает прозрачность. Цвет фона делает прозрачные области SVG предсказуемыми в конвертированном изображении.
Да. Настройте options.page_setup.any_page с помощью Page, Size и Margin, а при необходимости задайте разрешение.
Используйте Converter.convert_svg() для обычной конвертации файлов. Используйте render_to(), когда нужен сценарий с устройством рендеринга, например ImageDevice.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.