svg imagemagick png inkscape

Convierta SVG en PNG transparente con antialiasing, utilizando ImageMagick



inkscape (4)

Quiero convertir imágenes SVG en archivos PNG con fondo transparente y bordes suavizados (utilizando píxeles semitransparentes). Desafortunadamente no puedo hacer que ImageMagick haga el anti-aliasing, los bordes siempre se ven terribles. Esto es lo que intenté:

convert +antialias -background transparent in.svg -resize 25x25 out.png

¿Alguna idea o una herramienta de línea de comando diferente que pueda usar?


Como nota al margen, descubrí que obtener transparencia era un poco complicado. En lugar de usar transparente , tuve que usar ninguno .

convert -background none in.svg out.png


En realidad, leyendo la documentación de imagemagick:

-antialias

Habilitar / Deshabilitar el renderizado de píxeles anti-aliasing cuando se dibujan fuentes y líneas. Por defecto, los objetos (por ejemplo, texto, líneas, polígonos, etc.) tienen antialias cuando se dibujan. Use + antialias para deshabilitar la adición de píxeles de borde antialiasing. Esto reducirá la
número de colores agregados a una imagen para solo los colores que se dibujan directamente. Es decir, no se agregan colores mixtos al dibujar tales objetos.

los + antialias desactivarán el antialiasing.


Inkscape hará esto:

inkscape / --export-png=out.png --export-dpi=200 / --export-background-opacity=0 --without-gui in.svg


La forma en que aprendí a hacer esto fue a partir de la metodología que se encuentra aquí: ¿Cómo convertir un archivo .eps a un archivo de 1024x1024 .jpg de alta calidad?

Es la misma idea que la solución de @halfer con inkscape para subir primero el DPI, pero puedes lograr lo mismo en imagemagick utilizando la opción de -density .

convert -density 200 in.svg -resize 25x25 -transparent white out.png