Конвертировать SVG в JPG в Python

Quick Answer: Чтобы конвертировать SVG в JPG в Python, загрузите исходный файл через SVGDocument, создайте ImageSaveOptions, задайте options.format = ImageFormat.JPEG и вызовите Converter.convert_svg(document, options, output_path). Укажите цвет фона, потому что JPG не поддерживает прозрачность.

Конвертация SVG в JPG программно

JPG удобен, когда нужно компактное растровое превью, миниатюра, изображение для отчета или веб-ресурс без прозрачности. Если SVG содержит прозрачные области, перед конвертацией выберите явный цвет фона. Иначе итоговый фон может зависеть от рендера или последующего процесса.

Перед запуском примеров установите Aspose.SVG for Python via .NET в вашей Python-среде.

Конвертация SVG в JPG с настройками по умолчанию

Следующий пример загружает document.svg, выбирает JPEG-вывод и сохраняет результат как document.jpg.

 1from aspose.svg import SVGDocument
 2from aspose.svg.converters import Converter
 3from aspose.svg.rendering.image import ImageFormat
 4from aspose.svg.saving import ImageSaveOptions
 5
 6# Convert an SVG file to JPG
 7options = ImageSaveOptions()
 8options.format = ImageFormat.JPEG
 9
10with SVGDocument("document.svg") as document:
11    Converter.convert_svg(document, options, "document.jpg")

В этом примере SVGDocument загружает исходный файл, ImageSaveOptions вместе с ImageFormat.JPEG выбирает JPG-вывод, а Converter.convert_svg() записывает конвертированный файл.

Конвертация SVG в JPG с пользовательскими параметрами

Используйте ImageSaveOptions, когда JPG должен иметь конкретный canvas, фон или разрешение. Следующий пример задает светлый фон, создает страницу 450 x 450 с полями и рендерит при 96 dpi.

 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 и преобразованный JPG с пользовательским фоном

Важные свойства ImageSaveOptions

СвойствоКогда использовать
formatВыбрать JPEG-вывод через ImageFormat.JPEG
background_colorЗаполнить прозрачные области SVG перед сохранением в JPG
page_setupЗадать размеры страницы, поля и layout canvas
horizontal_resolutionЗадать горизонтальное разрешение вывода в dpi
vertical_resolutionЗадать вертикальное разрешение вывода в dpi
smoothing_modeУправлять качеством растеризации фигур и краев

Типичные ошибки и решения

ПроблемаВозможная причинаРешение
У JPG черный или неожиданный фонИсходный SVG содержит прозрачные области, а JPG не умеет хранить прозрачностьЗадайте options.background_color перед конвертацией
Изображение пустое или обрезаноВ SVG нет корректного viewport или выходная страница меньше видимого содержимогоЗадайте SVG width, height или viewBox, либо настройте options.page_setup.any_page
Связанные изображения, CSS или шрифты отсутствуютОтносительные ресурсы не могут быть разрешены из текущего входного путиЗагружайте SVG из исходного файлового пути и держите связанные ресурсы в ожидаемых относительных местах
Расширение файла и фактический формат не совпадаютoptions.format не задан как ImageFormat.JPEG или выходной путь использует неправильное расширениеЗадайте options.format = ImageFormat.JPEG и сохраняйте в .jpg или .jpeg
Линии, иконки или текст выглядят зубчатымиРазмеры вывода или растровое разрешение слишком низкие для целевого размера отображенияУвеличьте размеры страницы или разрешение и проверьте smoothing_mode для quality-sensitive вывода

Онлайн-конвертер SVG в JPG

Используйте бесплатный онлайн SVG to JPG Converter, чтобы проверить результат перед реализацией такого же сценария в Python.

                
            

Онлайн-конвертер SVG в JPG

FAQ

Как конвертировать SVG в JPG в Python?

Загрузите SVG через SVGDocument, задайте ImageSaveOptions.format = ImageFormat.JPEG и вызовите Converter.convert_svg(document, options, output_path).

Что выбрать для конвертации SVG: JPG или PNG?

Используйте JPG для компактных превью, миниатюр и веб-изображений, если прозрачность не нужна. Используйте PNG, когда нужен вывод без потерь или прозрачные области.

Остается ли конвертированный JPG редактируемым векторным изображением?

Нет. JPG – растровый формат. После конвертации результат содержит пиксели, а не редактируемые SVG-элементы, path или текстовые узлы.

Можно ли сохранить результат как .jpeg вместо .jpg?

Да. Используйте ImageFormat.JPEG и выберите .jpg или .jpeg в имени выходного файла в зависимости от соглашений вашего процесса.

Можно ли конвертировать SVG из URL или строки в памяти в JPG?

Да. Создайте SVGDocument из URL, файлового потока или SVG-разметки с корректным base URI, а затем передайте документ в Converter.convert_svg() с JPEG-параметрами.

Можно ли конвертировать много SVG-файлов в JPG?

Да. Переберите входную папку, используйте одни и те же ImageSaveOptions и вызывайте Converter.convert_svg() для каждого SVG-файла. См. Пакетная конвертация SVG-файлов.

Связанные статьи