Convertir SVG a PNG en Python
El formato de archivo PNG admite la compresión de imágenes sin pérdidas, lo que lo hace popular entre sus usuarios. A diferencia de SVG, un formato vectorial que es posible que no admitan todas las plataformas y aplicaciones, PNG es universal y se puede utilizar fácilmente en diversos software, sitios web y dispositivos. Además, PNG admite fondos transparentes, lo que lo hace ideal para gráficos, logotipos e imágenes web. Con Aspose.HTML for Python via .NET, puede convertir formato SVG a PNG mediante programación con control total sobre una amplia gama de parámetros de conversión.
En este artículo, encontrará información sobre la conversión de SVG a PNG utilizando los métodos convert_svg() de la clase Converter y aplicando ImageSaveOptions. Además, puede probar un convertidor SVG en línea para probar la funcionalidad de la API de Python y convertir SVG sobre la marcha.
Convertidor SVG en línea
Puede convertir SVG a otros formatos en tiempo real. Cargue SVG desde un sistema de archivos local o URL, seleccione el formato de salida y ejecute el ejemplo. Las opciones de guardado están configuradas de forma predeterminada. Recibirá inmediatamente el resultado de la conversión como un archivo separado.
Convertir SVG a PNG
Usar los métodos convert_svg() es la forma más común de convertir SVG a varios formatos. Para convertir, puede cargar SVG desde un archivo, URL o cadena de código. En el siguiente ejemplo, creamos un archivo SVG a partir de código.
- Prepare el código para un documento SVG.
- Cree un nuevo objeto
ImageSaveOptions. De forma predeterminada, la propiedad
format
es PNG. Si no configura opciones específicas para guardar la imagen resultante, se utilizarán las opciones predeterminadas. - Utilice el método
convert_svg(
content, base_uri, opciones, output_path
) de la clase Converter.
1import os
2from aspose.html.converters import *
3from aspose.html.saving import *
4
5# Setup directories and define paths
6output_dir = "output/"
7if not os.path.exists(output_dir):
8 os.makedirs(output_dir)
9save_path = os.path.join(output_dir, "circle.png")
10
11# Prepare SVG code
12svg_code = """<svg xmlns="http://www.w3.org/2000/svg">
13<circle cx="100" cy="100" r="60" fill="teal" stroke="salmon" stroke-width="10" />
14</svg>"""
15
16# Initialize ImageSaveOptions
17options = ImageSaveOptions()
18
19# Convert SVG to PNG
20Converter.convert_svg(svg_code, ".", options, save_path)
Convierta SVG a PNG usando ImageSaveOptions
La funcionalidad de creación de imágenes PNG se puede mejorar con opciones de guardado según sus necesidades. La clase
ImageSaveOptions ofrece una amplia personalización para convertir contenido SVG en formatos de imagen. Aquí hay una descripción de cada propiedad de ImageSaveOptions
:
- page_setup: puede configurar los ajustes de diseño de página para la imagen de salida. Esto incluye especificar el tamaño de la página y los márgenes (superior, inferior, izquierda, derecha) para controlar la ubicación y visualización del contenido HTML dentro de la imagen.
- horizontal_resolution: esta propiedad establece u obtiene la resolución horizontal (en píxeles por pulgada) para las imágenes internas y de salida utilizadas durante el procesamiento. Una resolución más alta normalmente da como resultado una imagen más nítida, pero también puede aumentar el tamaño del archivo. Por defecto, es 300 ppp.
- vertical_resolution: esta propiedad establece u obtiene la resolución vertical de las imágenes internas en píxeles por pulgada. Por defecto, es 300 ppp.
- background_color: esta propiedad le permite establecer el color de fondo para la salida renderizada. Si no se establece, el fondo predeterminado es transparente.
- css: esta propiedad, representada por
CssOptions
, permite configurar cómo se procesan las propiedades CSS durante la conversión de HTML a imagen. - format: esta propiedad determina el formato de la imagen de salida. Los formatos admitidos incluyen formatos de imagen comunes como PNG, JPEG, BMP, GIF y TIFF. El formato predeterminado es PNG, pero puede especificar otros según sus requisitos.
- smoothing_mode: esta propiedad controla la calidad de la representación de gráficos durante la conversión. Afecta la forma en que se representan las imágenes, lo cual es especialmente útil para suavizar y lograr resultados fluidos y visualmente atractivos. Las opciones suelen incluir configuraciones para renderizado de alta calidad, lo que puede ser fundamental para imágenes profesionales y de presentación.
- compression – La opción de compresión le permite configurar el método de compresión para la salida TIFF. Opciones admitidas: LZW, CCITT3, CCITT4, RLE y NONE. La compresión ayuda a reducir el tamaño del archivo y al mismo tiempo mantiene la calidad de la imagen, lo cual es especialmente importante para los archivos TIFF utilizados para archivar e imprimir imágenes de alta calidad.
- text: esta propiedad proporciona configuraciones para la representación de texto durante la conversión de HTML a imagen.
Para convertir SVG a PNG con la especificación ImageSaveOptions
, debe seguir algunos pasos:
- Cargue un archivo SVG usando uno de los constructores SVGDocument() de la clase SVGDocument. ( tulipanes.svg).
- Cree un nuevo objeto
ImageSaveOptions y especifique las opciones de guardado. De forma predeterminada, la propiedad
format
es PNG. El constructorImageSaveOptions()
inicializa una instancia de la claseImageSaveOptions
que se pasa al métodoconvert_svg()
. Aquí puede configurar las opciones de guardado requeridas, como el formato o la resolución. - Utilice uno de los métodos
convert_svg() para guardar SVG como una imagen PNG. En el ejemplo, el método convert_svg() toma el
document
, lasoptions
y la ruta del archivo de salidasave_path
y realiza la operación de conversión.
1import os
2from aspose.html.saving import *
3# from aspose.html.drawing import *
4from aspose.html.converters import *
5from aspose.html.dom.svg import *
6
7# Setup directories and define paths
8output_dir = "output/"
9input_dir = "data/"
10if not os.path.exists(output_dir):
11 os.makedirs(output_dir)
12
13document_path = os.path.join(input_dir, "tulips.svg")
14save_path = os.path.join(output_dir, "tulips.png")
15
16# Load an SVG document
17document = SVGDocument(document_path)
18
19# Настройки сохранения в PDF
20options = ImageSaveOptions()
21options.page_setup.first_page = Page(Size(500, 500), Margin(10, 10, 10, 10))
22options.css.media_type.PRINT
23
24# Convert SVG to PNG
25Converter.convert_svg(document, options, save_path)
En el ejemplo anterior, usamos:
- la propiedad
page_setup
para establecer la configuración de diseño para la primera página de la imagen de salida; - la propiedad
css.media_type
para especificar el tipo de medio que se utilizará para CSS durante el proceso de renderizado. En el ejemplo, está configurado enPRINT
, que aplica reglas CSS específicas de impresión. Esto puede afectar la apariencia final de la imagen de salida mediante el uso de estilos definidos para los medios impresos.
La figura muestra la calidad de la representación de SVG a PNG usando un fragmento del archivo tulips.png
como ejemplo.
Cómo convertir SVG a imágenes
Aspose.HTML for Python via .NET admite la conversión de imágenes SVG a PNG, JPEG, BMP, TIFF y GIF. Para configurar el formato de la imagen de salida, solo necesita especificar la extensión (formato) requerida en el nombre del archivo de salida y configurar la propiedad format
para el objeto de opciones de guardado.
Por ejemplo, para convertir SVG a GIF, necesita:
- para establecer la propiedad de formato:
options.format.GIF
- y establezca la extensión
.gif
en el nombre del archivo de imagen de salida:save_path = os.path.join(output_dir, "svg-to-image.gif")
Ver también
- Para obtener más información sobre los archivos SVG, visite el artículo ¿Qué es un archivo SVG? – Pros, contras, código XML.
- Descargue la biblioteca Aspose.HTML for Python via .NET que le permite convertir con éxito, rápida y fácilmente sus documentos HTML, MHTML, EPUB, SVG y Markdown a los formatos más populares.
- Verifique la calidad de la conversión de SVG a PNG con nuestro Convertidor de SVG a PNG. Sube, convierte tus archivos y obtén resultados en unos segundos. ¡Pruebe nuestro contundente conversor de SVG a PNG gratis ahora!