Hilfe:Bildbearbeitung in der Kommandozeile (Linux)
Bildbearbeitung in der Kommandozeile benötigt schon fortgeschrittene Computerfahrungen, da man wissen sollte, wie die Kommandozeile unter Linux zu bedienen ist.
Mehrerer Bilder kacheln
ImageMagick bietet die Möglichkeit das Kommando montage
zu nutzen (s. englische Dokumentation (www.imagemagick.org)). Das Kommando kann wie folgt benutzt werden.
montage -help # die Hilfe anzeigen
Das fertige Komanndo ausführen …
montage -label '%f' -pointsize 2 -density 300 *.svg \
-tile 15x30 \
-geometry '+40+0' \
./papirus-emblames.png
Für diesen Fall kann man einfach das *.svg
austauschen mit dem Kommando für find
, allerdings muss man es dann mit zwei Anführungszeichen umfassen:
montage -label '%f' -pointsize 2 -density 300 \
`find . -iname '*.svg' -type f` \
-tile 15x30 \
-geometry '+40+0' \
./papirus-emblames.png
find
sucht also nur Typ „f“, also Datei für das englische file.
Oder die Dateien noch sortieren mittels find … | sort
:
montage -label '%f' -pointsize 2 -density 300 \
`find . -iname '*.svg' -type f | sort` \
-tile 15x30 \
-geometry '+40+0' \
./papirus-emblames.png
Das Bildergebnis:
Die Erklärungen:
- bezeichne die Bilder mit dem Dateinamen (hier
%f
für englisch file) mittels-label '%f'
- setze die Punktgröße der Schrift neu
-pointsize 2
(etwas Probieren nötig im Versuch-und-Irrtum-Modus ;-) - erhöhe die Auflösung der Teilbilder
-density 300
(theoretisch 300 DPI, dots per inch=Punkte pro Zoll) - kachel und begrenze das Endbild auf 15 Spalten × 30 Zeilen:
-tile 15x30
(falls nicht alle Bilder in 15×30 hineinpassen, erzeugt ImageMagick automatisch nummerierte Dateien: …-0.png, …-1.png) - verändere den Außenrand der Teilbilder:
-geometry '+40+0'
fügt seitlich/horizontal 40 px aber oben und unten/vertikal 0 px - um noch mehr Prozess-Informationen zu erhalten füge am Anfang die Option
-verbose
hinzu
Hinweis: die zentrale Einstelloption ist hier -density
. Man muss etwas ausprobieren um die gewünschte Dateigröße und Auflösung zu erhalten, damit alles gut sichtbar wird und das Endbild nicht übermäßig groß wird.
Den Hintergrund einfärben
Wichtig hierbei ist, dass man die Transparenz einschaltet (-alpha 'Copy'
) und die Hintergrundfarbe angibt (-background '#76B82A'
), wenn man die schwarze Schriftfarbe abändern möchte stellt man dies über -fill '#D3DAE3'
ein:
montage -label '%f' -verbose -alpha 'Copy' \
-background '#76B82A' \
-density 300 \
-pointsize 2 -fill '#D3DAE3' \
`find . -iname '*.svg' -type f | sort` \
-tile 10x -geometry '+15+0' \
./papirus-panel-20180501-bg-76B82A.png
Das Bildergebnis:
Eine Farbe gezielt umfärben
Bei ImageMagick kann man gleichzeitig bei dem Kommando montage
z.Z. nicht erreichen, dass man Bilder zusammenfügt und eine Farbe umfärbt. Man verwendet das Kommando convert
. In folgendem Beispiel soll die Füllfarbe hellgelbes OSEG #F0EEB7 sein, die nur da einfärbt, wo die graue Farbe #D3DAE3 vorhanden ist. Um in der Farberkennung nicht so streng nur eine einzige Farbe auszutauschen, sondern ein besseres Aussehen zu erzielen, darf die graue Suchfarbe 15 % Farbabweichung mehr haben (-fuzz 15%
) und wird trotzdem ins hellgelb umgefärbt.
convert ./papirus-panel-20180501-bg-76B82A-4.png \ -fuzz 15% \ -fill '#F0EEB7' -opaque '#D3DAE3' \ ./papirus-panel-20180501-bg-76B82A-fg-F0EEB7-4.png
Hinweis: das Wichtigste ist diese Reihenfolge der Optionen (-fuzz -fill -opaque
), falls anders vertauscht, wird es unerwartete Ergebnisse liefern.
Das Bildergebnis: