Estoy en Linux y me gustaría tomar un archivo SVG y convertirlo en un archivo PNG con una resolución dada (escala). ¿Hay alguna manera de hacer esto de manera rápida y efectiva desde la línea de comandos?
Estoy buscando algo como esto:
svg2png --width 128 --height 128 input.svg output.png
¿Hay alguna herramienta para esto?
Respuestas:
Utilice la conversión de ImageMagick :
Si el tamaño del lienzo de entrada es menor que el tamaño dado, esto aumentará la salida sin volver a muestrear. Para obtener un resultado de mayor calidad, agregue el
-density
parámetro:ImageMagick trama imágenes vectoriales a su resolución de lienzo a una densidad predeterminada de 72 ppp.
Para aumentar la escala con un muestreo adecuado, puede especificar un valor demasiado alto, como 500 ppp en la muestra anterior.
Usar una densidad de trama demasiado alta puede ser un problema de rendimiento con un lienzo de gran tamaño. La densidad de trama más baja e ideal es:
raster_density = raster_size / original_size * original_density
Esta densidad de ráster ideal generará la imagen directamente al tamaño esperado (no es
-resize
necesario). Pero como pueden ocurrir aproximaciones de números flotantes, se recomienda un valor ligeramente mayor y un cambio de tamaño para obtener un resultado perfecto en píxeles.Puede obtener el tamaño y la densidad originales con los escapes porcentuales de ImageMagick :
Tenga en cuenta que ImageMagick no maneja las especificaciones completas de SVG. Si tiene problemas con las formas representadas incorrectamente, mire este hilo sobre cómo seleccionar el renderizador SVG de ImageMagick .
fuente
rsvg
la respuesta a continuación por mi cuenta, pero es hora de que empiece a usar ImageMagick.convert: unable to read font
(nulo) '@ error / annotate.c / RenderFreetype / 1153.` errores que resolvíbrew install gs
, pero incluso cuando la conversión se ejecutó limpiamente, la imagen resultante es basura.-background transparent
, de lo contrario convertir utiliza fondo blanco.inkscape in.svg --export-png=out.png
(ejemplo de superuser.com/a/493028/316154 )Ambos
rsvg
yinkscape
pueden:Y:
fuente