GOOGLE ADS

Dienstag, 12. April 2022

Wie konvertiert man mit ImageMagick ein SVG in ein PNG?

Ich habe eine SVG-Datei mit einer definierten Größe von 16x16. Wenn ich das Konvertierungsprogramm von ImageMagick verwende, um es in ein PNG zu konvertieren, erhalte ich ein 16x16-Pixel-PNG, das viel zu klein ist:

convert test.svg test.png

Ich muss die Pixelgröße des Ausgabe-PNG angeben. -sizeParameter scheint ignoriert zu werden, -scaleParameter skaliert das PNG, nachdem es in PNG konvertiert wurde. Das bisher beste Ergebnis habe ich mit dem -densityParameter:

convert -density 1200 test.svg test.png

Aber ich bin nicht zufrieden, weil ich die Ausgabegröße in Pixel angeben möchte, ohne den Dichtewert zu berechnen. Also ich möchte sowas machen:

convert -setTheOutputSizeOfThePng 1024x1024 test.svg test.png

Was ist also der magische Parameter, den ich hier verwenden muss?


Lösung des Problems

Ich konnte in diesem Fall keine guten Ergebnisse mit ImageMagick erzielen, aber Inkscape leistet gute Arbeit beim Skalieren einer SVG-Datei unter Linux und Windows:

# Inkscape v1.0+
inkscape -w 1024 -h 1024 input.svg -o output.png

# Inkscape older than v1.0
inkscape -z -w 1024 -h 1024 input.svg -e output.png

Beachten Sie, dass Sie einen der Breiten-/Höhenparameter weglassen können, damit der andere Parameter automatisch basierend auf den Eingabebildabmessungen skaliert wird.

Hier ist das Ergebnis der Skalierung eines 16x16 SVG auf ein 200x200 PNG mit diesem Befehl:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...