SVGs mit ImageMagick rastern und einfärben

Die Aufgabenstellung war hier, SVGs mit Symbolen in verschiedenen Version einzufärben und zu bearbeiten. Dies ließ sich gut mit ImageMagick realisieren und vor allem automatisieren (wer hat schon Lust, von ~30 Symbolen jeweils 5 Farbvarianten und 2 verschiedene Formate zu erzeugen?):

Nach einigen Experimenten und Suchen im Internet hatte ich folgenden Befehl zusammengebastelt:

convert -density 800 input.svg -black-threshold 50% -fill 'rgb(193,18,28)' -floodfill +2+2 black -fill 'rgb(193,18,28)' -opaque white -fill white -opaque black -resize '500x500' output1.png
Kommando   800dpi  Eingabe-Datei      Monochrom     └schwarzer Rahmen bei (x,y)=(2,2) → RAL3020┘ └ alles Weiße → RAL3020 Verkehrsrot┘ └ alles Schwarze → Weiß ┘     500x500px     Ausgabe-Datei

Dieser Befehl erzeugt aus einer SVG-Datei (input.svg) eine PNG-Datei, bei der der Rahmen (alles Zusammenhängende bei den Koordinaten x=2,y=2 wird in der Hintergrundfarbe eingefärbt) entfernt wird und das Bild eingefärbt, Beispiel:

Aus wird output1.

Natürlich kann man den Rahmen auch im Bild belassen:
convert -density 800 symbol.svg -black-threshold 50% -fill 'rgb(193,18,28)' -opaque white -fill white -opaque black -resize '500x500' output1.png
Beispiel:

Aus obigen Ursprungsbild wird output1 (ich habe dem Bild zwecks besserer Sichtbarkeit einen grünen Rahmen gegeben).

Natürlich kann man die SVG auch nur in eine PNG-Datei umwandeln und abspeichern:
convert -density 800 symbol.svg -black-threshold 50% -resize '500x500' output1.png

Wer nicht möchte, dass das Bild in ein monochromes Bild umgewandelt wird, entferne das -black-threshold 50% aus der obigen Zeile. Die Ursprungs-SVG könnt ihr euch für eigene Experimente hier herunterladen (WordPress lässt keinen Upload von SVGs zu).

Linux-Anwender holen sich ImageMagick über ihre Paketverwaltung aufs System, Windows-Anwender laden sie auf der Hersteller-Seite herunter.
Anmerkungen zur Verwendung unter Windows:

Wird die Windows-Version von ImageMagick verwendet, muss evtl. 500x500 statt '500x500' notiert werden, außerdem convert in convert.exe geändert werden (getestet mit der portablen Version von ImageMagick).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.