Convertissez SVG en PNG transparent avec antialiasing, en utilisant ImageMagick

Je veux convertir des images SVG en fichiers PNG avec un arrière-plan transparent et des bords anti-aliasés (en utilisant des pixels semi-transparents). Malheureusement, je ne peux pas obtenir ImageMagick pour faire de l’anti-aliasing, les bords semblent toujours terribles. Voici ce que j’ai essayé:

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

Des idées ou un autre outil de ligne de commande que je pourrais utiliser?

Inkscape fera ceci:

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

En passant, j’ai trouvé que l’obtention de la transparence était un peu délicate. Au lieu d’utiliser transparent , je devais n’en utiliser aucun .

 convert -background none in.svg out.png 

En fait, en lisant la documentation imagemagick:

-antialias

Activer / Désactiver le rendu des pixels anti-aliasing lors du dessin des fonts et des lignes. Par défaut, les objects (par exemple, texte, lignes, polygones, etc.) sont antialiasés lorsqu’ils sont dessinés. Utilisez + antialias pour désactiver l’ajout de pixels d’arête d’anticrénelage. Cela réduira alors le
nombre de couleurs ajoutées à une image uniquement aux couleurs directement dessinées. C’est-à-dire qu’aucune couleur mixte n’est ajoutée lors du dessin de tels objects.

les antialias + vont en effet désactiver l’antialiasing.

La façon dont j’ai appris à faire cela était à partir de la méthodologie trouvée ici: Comment convertir un fichier .eps en un fichier .jpg 1024×1024 de haute qualité?

C’est la même idée que la solution de inkscape halfer avec inkscape twigr le DPI en premier – mais vous pouvez accomplir la même chose avec imagemagick utilisant l’option -density .

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