72 votes

Convertir SVG en PNG transparent avec anticrénelage, en utilisant ImageMagick

Je souhaite convertir des images SVG en fichiers PNG avec un fond transparent et des bords anticrénelés (en utilisant des pixels semi-transparents). Malheureusement, je n'arrive pas à faire en sorte qu'ImageMagick fasse l'anti-aliasing, les bords ont toujours l'air terribles. Voici ce que j'ai essayé :

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

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

109voto

Micah Points 5630

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

 convert -background none in.svg out.png

12voto

chiliNUT Points 3249

La façon dont j'ai appris à le faire était basée sur la méthodologie trouvée ici : Comment convertir un fichier .eps en un fichier .jpg 1024x1024 de haute qualité ?

C'est la même idée que la solution de @halfer avec inkscape pour augmenter le DPI d'abord -- mais vous pouvez accomplir la même chose en seulement imagemagick utilisant le -density option.

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

4voto

Yurii Rabeshko Points 158

L'ajout de l'option -transparent white résout le problème en particulier dans mon cas car l'arrière-plan n'est pas complètement supprimé (malheureusement, une ombre légère est présente). J'utilise donc une solution plus claire à mon humble avis qui supprime complètement l'arrière-plan avec ImageMagic :

convert -channel rgba -background "rgba(0,0,0,0)" in.svg out.png

Il définit une couleur noire entièrement transparente comme arrière-plan via le canal RGBA.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X