Hilfe:Bildbearbeitung in der Kommandozeile (Linux): Unterschied zwischen den Versionen

Aus Open Source Ecology - Germany
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
  
 
Bildbearbeitung in der Kommandozeile benötigt schon fortgeschrittene Computerfahrungen, da man wissen sollte, wie die Kommandozeile unter Linux zu bedienen ist.
 
Bildbearbeitung in der Kommandozeile benötigt schon fortgeschrittene Computerfahrungen, da man wissen sollte, wie die Kommandozeile unter Linux zu bedienen ist.
 +
 +
__INHALTSVERZEICHNIS__
  
 
== Mehrerer Bilder kacheln ==
 
== Mehrerer Bilder kacheln ==
Zeile 6: Zeile 8:
 
ImageMagick bietet die Möglichkeit das Kommando <code>montage</code> zu nutzen (s. [http://www.imagemagick.org/Usage/montage/ englische Dokumentation (www.imagemagick.org)]). Das Kommando kann wie folgt benutzt werden.
 
ImageMagick bietet die Möglichkeit das Kommando <code>montage</code> zu nutzen (s. [http://www.imagemagick.org/Usage/montage/ englische Dokumentation (www.imagemagick.org)]). Das Kommando kann wie folgt benutzt werden.
  
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
montage -help # die Hilfe anzeigen
 
montage -help # die Hilfe anzeigen
</source>
+
</syntaxhighlight>
  
 
Das fertige Komanndo ausführen{{nnbsp}}…
 
Das fertige Komanndo ausführen{{nnbsp}}…
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
montage -label '%f' -pointsize 2 -density 300 *.svg \
 
montage -label '%f' -pointsize 2 -density 300 *.svg \
 
   -tile 15x30 \
 
   -tile 15x30 \
 
   -geometry '+40+0' \
 
   -geometry '+40+0' \
 
  ./papirus-emblames.png
 
  ./papirus-emblames.png
</source>
+
</syntaxhighlight>
 
{{Hidden | toggle position=left | toggle text=zeige / verberge
 
{{Hidden | toggle position=left | toggle text=zeige / verberge
 
|contentstyle=border-left:1px gray dashed;padding-left:1em;
 
|contentstyle=border-left:1px gray dashed;padding-left:1em;
 
|header=''Tipp: Nur echte Dateien verarbeiten (ohne symbolische Links) …''
 
|header=''Tipp: Nur echte Dateien verarbeiten (ohne symbolische Links) …''
 
|content=Für diesen Fall kann man einfach das <code>*.svg</code> austauschen mit dem Kommando für <code>find</code>, allerdings muss man es dann mit zwei Anführungszeichen umfassen:
 
|content=Für diesen Fall kann man einfach das <code>*.svg</code> austauschen mit dem Kommando für <code>find</code>, allerdings muss man es dann mit zwei Anführungszeichen umfassen:
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
montage -label '%f' -pointsize 2 -density 300 \
 
montage -label '%f' -pointsize 2 -density 300 \
 
   `find . -iname '*.svg' -type f` \
 
   `find . -iname '*.svg' -type f` \
Zeile 27: Zeile 29:
 
   -geometry '+40+0' \
 
   -geometry '+40+0' \
 
  ./papirus-emblames.png
 
  ./papirus-emblames.png
</source>
+
</syntaxhighlight>
 
<code>find</code> sucht also nur Typ „f“, also Datei für das englische ''f''ile.
 
<code>find</code> sucht also nur Typ „f“, also Datei für das englische ''f''ile.
  
 
Oder die Dateien noch sortieren mittels <code>find … {{!}} sort</code>:
 
Oder die Dateien noch sortieren mittels <code>find … {{!}} sort</code>:
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
montage -label '%f' -pointsize 2 -density 300 \
 
montage -label '%f' -pointsize 2 -density 300 \
 
   `find . -iname '*.svg' -type f | sort` \
 
   `find . -iname '*.svg' -type f | sort` \
Zeile 37: Zeile 39:
 
   -geometry '+40+0' \
 
   -geometry '+40+0' \
 
  ./papirus-emblames.png
 
  ./papirus-emblames.png
</source>
+
</syntaxhighlight>
  
 
}}
 
}}
Zeile 58: Zeile 60:
  
 
Wichtig hierbei ist, dass man die Transparenz einschaltet (<code>-alpha 'Copy'</code>) und die Hintergrundfarbe angibt (<code>-background '{{Farbbox|<nowiki>#76B82A</nowiki>|#76B82A}}'</code>), wenn man die schwarze Schriftfarbe abändern möchte stellt man dies über <code>-fill '#D3DAE3'</code> ein:
 
Wichtig hierbei ist, dass man die Transparenz einschaltet (<code>-alpha 'Copy'</code>) und die Hintergrundfarbe angibt (<code>-background '{{Farbbox|<nowiki>#76B82A</nowiki>|#76B82A}}'</code>), wenn man die schwarze Schriftfarbe abändern möchte stellt man dies über <code>-fill '#D3DAE3'</code> ein:
<source lang="html4strict">
+
<syntaxhighlight lang="bash">
 
montage -label '%f' -verbose -alpha 'Copy' \
 
montage -label '%f' -verbose -alpha 'Copy' \
 
   -background '#76B82A'  \
 
   -background '#76B82A'  \
Zeile 66: Zeile 68:
 
   -tile 10x -geometry '+15+0' \
 
   -tile 10x -geometry '+15+0' \
 
   ./papirus-panel-20180501-bg-76B82A.png
 
   ./papirus-panel-20180501-bg-76B82A.png
</source>
+
</syntaxhighlight>
 +
 
 +
'''Das Bildergebnis:'''
 +
 
 +
[[Datei:Papirus-panel-20180501-bg-76B82A-4.png|600px|Gekachelte Bilder eingefärbt mit OSEG grün, mit Beschriftung der Themengestaltung „Papirus“ für Computer-Arbeitsflächen ([https://www.opendesktop.org/s/Gnome/p/1166289/ Papirus bei opendesktop.org])]]
 +
 
 +
 
 +
== Eine Farbe gezielt umfärben  ==
 +
 
 +
Zusammen mit dem Kommando <code>montage</code> kann man dies z.Z. nicht gleichzeitig erreichen, dass man Bilder zusammenfügt und eine Farbe umfärbt, man verwendet daher das Kommando <code>convert</code>. In folgendem Beispiel soll die Füllfarbe {{Farbbox|hellgelbes OSEG #F0EEB7|#76B82A|#F0EEB7}} sein, die nur da einfärbt, wo die {{Farbbox|graue Farbe #D3DAE3|#76B82A|#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{{nnbsp}}% Farbabweichung mehr haben (<code>-fuzz&nbsp;15%</code>) und wird trotzdem ins hellgelb umgefärbt.
 +
 
 +
convert ./papirus-panel-20180501-bg-76B82A-4.png \
 +
  -fuzz 15%  \
 +
  -fill '{{Farbbox|<nowiki>#F0EEB7</nowiki>|#76B82A|#F0EEB7}}' -opaque '{{Farbbox|<nowiki>#D3DAE3</nowiki>|#76B82A|#D3DAE3}}' \
 +
  ./papirus-panel-20180501-bg-76B82A-fg-F0EEB7-4.png
 +
 
 +
'''Hinweis:''' das Wichtigste ist diese Reihenfolge der Optionen (<code>-fuzz -fill -opaque</code>), falls anders vertauscht, wird es unerwartete Ergebnisse liefern.
  
 
'''Das Bildergebnis:'''
 
'''Das Bildergebnis:'''
  
[[Datei:Papirus-panel-20180501-bg-76B82A-4.png|600px|Gekachelte Bilder eingefärbt mit OSEG grün, mit Beschriftung der Themengestaltung Papirus für Computer-Arbeitsflächen ([https://www.opendesktop.org/s/Gnome/p/1166289/ Papirus bei opendesktop.org])]]
+
[[Datei:Papirus-panel-20180501-bg-76B82A-fg-F0EEB7-4.png|600px|Gekachelte Bilder eingefärbt mit OSEG grün, und hellgelb eingfärbten Symbolen, aus der Themengestaltung „Papirus“ für Computer-Arbeitsflächen ([https://www.opendesktop.org/s/Gnome/p/1166289/ Papirus bei opendesktop.org])]]
  
 
[[Kategorie: Hilfe]]
 
[[Kategorie: Hilfe]]

Version vom 18. Mai 2018, 14:08 Uhr

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
Tipp: Nur echte Dateien verarbeiten (ohne symbolische Links) …

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:

Gekachelte Bilder mit Beschriftung der Themengestaltung Papirus für Computer-Arbeitsflächen (Papirus bei opendesktop.org)

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:

Gekachelte Bilder eingefärbt mit OSEG grün, mit Beschriftung der Themengestaltung „Papirus“ für Computer-Arbeitsflächen (Papirus bei opendesktop.org)


Eine Farbe gezielt umfärben

Zusammen mit dem Kommando montage kann man dies z.Z. nicht gleichzeitig erreichen, dass man Bilder zusammenfügt und eine Farbe umfärbt, man verwendet daher 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:

Gekachelte Bilder eingefärbt mit OSEG grün, und hellgelb eingfärbten Symbolen, aus der Themengestaltung „Papirus“ für Computer-Arbeitsflächen (Papirus bei opendesktop.org)