J'utilise cette commande pour générer une version nette 512px d'un fichier SVG que j'ai:
convert -geometry 256 pinterest.svg pinterest.png
Voici le fichier source:
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="16px" height="16px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
<path fill="#231F20" d="M8,0C3.582,0,0,3.582,0,8c0,3.275,1.97,6.09,4.789,7.327c-0.022-0.559-0.005-1.229,0.139-1.837
c0.154-0.649,1.029-4.359,1.029-4.359s-0.255-0.51-0.255-1.266c0-1.186,0.687-2.071,1.542-2.071c0.729,0,1.08,0.547,1.08,1.201
c0,0.73-0.467,1.825-0.707,2.838c-0.2,0.85,0.426,1.541,1.262,1.541c1.515,0,2.537-1.947,2.537-4.253
c0-1.753-1.181-3.066-3.329-3.066c-2.427,0-3.938,1.81-3.938,3.831c0,0.697,0.205,1.188,0.528,1.57
C4.824,9.631,4.845,9.7,4.792,9.902c-0.039,0.147-0.126,0.502-0.163,0.643c-0.054,0.202-0.218,0.274-0.401,0.199
C3.11,10.289,2.59,9.064,2.59,7.688c0-2.272,1.916-4.997,5.718-4.997c3.053,0,5.065,2.21,5.065,4.582
c0,3.139-1.746,5.482-4.317,5.482c-0.864,0-1.677-0.467-1.955-0.996c0,0-0.464,1.844-0.562,2.199
c-0.17,0.616-0.502,1.232-0.805,1.713C6.452,15.885,7.213,16,8,16c4.418,0,8-3.582,8-8S12.418,0,8,0z"/>
</svg>
Cependant, il produit un PNG flou:
Comme ma source est une illustration vectorielle, je m'attendais à obtenir une image nette. Existe-t-il un moyen de le faire?
macos
imagemagick
png
svg
TheFooProgrammer
la source
la source
width="16px" height="16px"
fichier SVG. Essayez de modifier la commande ImageMagickconvert -resize 3200% pinterest.svg pinterest.png
pour une image 512 x 512. Je ne sais pas si vous en aurez besoin-geometry 512
ou non.-geometry
. Il produit une image floue. Ça-density
ne marche même pas. Cependant, j'ai réussi à obtenir les résultats souhaités en utilisant Apache Batik.Réponses:
J'ai eu le même problème, mais je l'ai en quelque sorte contourné en réglant d'abord la densité.
Depuis la ligne de commande:
la source
Parce que le DPI d'origine est de 72 et la taille des pixels est de 16 x 16, donc 512/16 * 72 est de 2304.
la source
Je n'ai pas trouvé de moyen de résoudre ce problème en utilisant ImageMagick, mais le script de pixellisation d'Apache Batik peut être utilisé pour convertir et redimensionner le SVG en PNG sans perte.
Voir ici pour plus d'informations.
la source