[[Vorlage(Getestet, bionic focal, jammy)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(2)]] [[Bild(./logo.png, 64, align=left)]] [http://www.imagemagick.org/script/index.php ImageMagick] {en} ist ein freies, quelloffenes Softwarepaket zur Erstellung und Bearbeitung von Rastergrafiken. ImageMagick kann momentan mehr als 200 der meist verwendeten Bildformate lesen, verändern und schreiben. Außerdem lassen sich Bilder dynamisch generieren, weshalb es auch von Webanwendungen verwendet wird. Eine Alternative ist das Programm [http://www.graphicsmagick.org/ graphicsmagick] {en}, eine [wikipedia:Abspaltung_(Softwareentwicklung):Abspaltung] von ImageMagick. Es kann ebenfalls über die Paketverwaltung installiert werden. = Installation = Bevor die beschriebenen Tools benutzt werden können, muss das folgende Paket installiert werden.[1] Angesichts der umfangreichen Kommandozeilenoptionen ist auch die Dokumentation empfehlenswert. {{{#!vorlage Paketinstallation imagemagick imagemagick-doc }}} Eine Konfiguration ist nicht nötig. = Übersicht = ImageMagick bietet 11 Kommandozeilenprogramme,[2] die alle auf einen gemeinsamen Satz von Bibliotheken zugreifen, die wiederum das Schreiben und Lesen vieler verschiedener Dateiformate und umfangreiche grafische Arbeiten ermöglichen. * `animate` - spielt mehrere Bilder schnell hintereinander ab * `convert` - liest Bilder, bearbeitet sie und speichert sie ab * `compare` - vergleicht 2 Bilder und gibt die Unterschiede als Bilddatei aus * `composite` - überlagert mehrere Bilder zu einem Bild * `conjure` - führt Skripte in der Skriptsprache von ImageMagick aus * `display` - stellt Bilder auf einem X-Server dar * `identify` - gibt Dateiformat, Bildgröße usw. von Bilddateien aus * `import` - macht Bildschirmfotos * `montage` - fasst mehrere Bilder zu einem großen Einzelbild zusammen * `mogrify` - wie `convert`, nur dass die Eingabedatei durch die Ausgabedatei ersetzt wird! * `stream` - liest aus Bilddateien Teile aus und gibt sie als Rohdaten, Fließkommazahlen oder ähnliches aus Zu jedem Kommandozeilenprogramm gibt es eine Manpage. Die separate Dokumentation befindet sich unter: * '''/usr/share/doc/imagemagick-doc/index.html''' Von hier aus findet man auch zu jedem Kommandozeilenprogramm eine HTML-Seite mit Anwendungsbeispielen. ImageMagick-Programme bieten 241 verschiedene Kommandozeilenoptionen und grafische Operationen. Da viele Optionen von mehreren Kommandozeilenprogrammen verstanden werden, ist eine detaillierte Erklärung aller Optionen in der folgenden Datei zusammengefasst: * '''/usr/share/doc/imagemagick-doc/www/command-line-options.html''' = convert = Möchte man ein Bild bearbeiten, so kann man den Befehl `convert` nutzen. Ein Bild wird geladen, bearbeitet und (ggf. in einem anderen Format) abgespeichert. {{{#!vorlage Befehl convert EINGABEBILD.jpg [Optionen] AUSGABEBILD.png }}} Im einfachsten Fall (ohne Optionen) kann `convert` zur Umwandlung in ein anderes Dateiformat verwendet werden. Dabei wird das Format der Eingabedatei automatisch bestimmt und das der Ausgabedatei (falls keine weiteren Angaben gemacht werden) anhand der Dateiendung. Da `convert` über 200 Optionen auf der Kommandozeile versteht, sei für Details auf die Dokumentation verwiesen. Hier ein paar nützliche Beispiele. == Bilder mit Wasserzeichen versehen == Mit Hilfe von ImageMagick lassen sich sichtbare Wasserzeichentexte in JPEG-Bilder einbringen. Das folgende kleine [:Bash:]-Skript erleichtert die Arbeit: {{{#!code bash #!/bin/bash # Wasserzeichentext in alle JPEG Bilder aus diesen Verzeichnis einfuegen # Der Wasserzeichentext wird unten links ins Bild eingebracht # Sie koennen folgende Parameter anpassen: Textabstandvonlinks=10 Textabstandvonunten=10 Schriftgroesse=10 PfadFonts="/usr/share/fonts/truetype/msttcorefonts" # Pfad ist je nach Distribution unterschiedlich! Schriftart="Arial.ttf" Schriftfarbe="white" # Moegliche Farben koennen aufgelistet werden mit dem Befehl: convert -list color Wasserzeichentext="Copyright Ubuntu" # Programmbeginn echo "Textabstand von links: $Textabstandvonlinks" echo "Textabstand von unten: $Textabstandvonunten" echo "Schriftgoesse: $Schriftgroesse" echo "Schriftart: $Schriftart" echo "Schriftfarbe: $Schriftfarbe" echo "Wasserzeichentext: $Wasserzeichentext" echo " " for file in *.JPG *.jpg do horizontal=`identify -verbose $file | grep Geometry: | awk {'print $2'} |cut -d"x" -f 1` vertikal=`identify -verbose $file | grep Geometry: | awk {'print $2'} |cut -d"x" -f 2` X=$Textabstandvonlinks Y=$(($vertikal - $Textabstandvonunten)) convert -font $PfadFonts/$Schriftart -pointsize $Schriftgroesse -fill $Schriftfarbe -draw "text $X, $Y '$Wasserzeichentext'" "$file" "`basename Wasserzeichen_"$file"`"; echo "Bearbeite Datei $file" done echo "Wasserzeichen wurden erfolgreich eingearbeitet" exit # Programmende }}} Um statt eines Texts ein Bild als Wasserzeichen zu verwenden, nutzt man [#composite composite]. == Bilder / Fotos nachbearbeiten == Manchmal möchte oder muss man Bilddateien nachbearbeiten. Dies können z. B. mit der Digitalkamera aufgenommene Fotos sein, damit diese "vorzeigbar" oder verschickbar sind. Im folgenden wird davon ausgegangen, dass die Bilder "alltägliche" Motive sind und nicht unter Extrembedingungen aufgenommen wurden (also keine Nachtaufnahmen oder Gegenlichtaufnahmen mit besonderem künstlerischen Anspruch.) Mit `convert` und verschiedenen Optionen lassen sich Fotos bearbeiten: {{{#!vorlage Befehl convert QUELLDATEI.jpg [Optionen] ZIELDATEI.jpg }}} ||<-2 rowclass="titel"> convert|| ||Parameter||Erklärung|| ||`QUELLDATEI.jpg`||Eingabe. Das Dateiformat wird automatisch bestimmt. || ||`-rotate 90` ||Dreht Bild um 90 Grad nach rechts, `-90` entsprechend nach links. || ||`-fx u*(2-j/h)*0.75` ||Aufhellen des oberen Bildteils. Wenn man mit Blitz fest in der Kamera eingebaut fotografiert, ist der Vordergrund unten im Bild fast immer leicht überbelichtet und der Hintergrund oben stark unterbelichtet. Mit dieser Funktion wird der Vordergrund leicht abgedunkelt (-25%) und der Hintergrund stark aufgehellt (+50%). Das Ergebnis ist etwas kontrastarm, was aber mit dem darauf folgenden `-normalize` berichtigt wird. || ||`-fx u*(1+j/h)*0.75` ||Aufhellen des unteren Bildteils. || ||`-fx u*(2-i/w)*0.75`||Aufhellen des linken Bildteils. || ||`-fx u*(1+i/w)*0.75` ||Aufhellen des rechten Bildteils. || ||`-normalize` ||Streckt das Histogramm, so dass schwarz die dunkelste und weiß die hellste Farbe ist. Ergibt fast immer ein optimales Ergebnis. Wichtig! || ||`-gamma 1.10,1.05,1.0` ||Verstärkt den Rot- und Grünanteil und macht das Bild so "wärmer". Bei Bedarf nach eigenem Geschmack, Digitalkamera und Monitor anpassen! || ||`-fx u+${mt}*(1-u)*u` ||Verändert die "Mitteltöne". Sinnvolle Werte für `$mt` liegen zwischen `-1.0` (abdunkeln, z. B. bei grellem Sonnenschein) und `1.0` (Aufhellen, z. B. bei Gegenlicht). Diese Funktion hat den Vorteil, dass beim Aufhellen helle Partien nicht im gleißendem Weiß "ersaufen", sondern lediglich kontrastärmer dargestellt werden, analog beim Abdunkeln. Meist nicht nötig. || ||`-resize 50%` ||"Verkleinert" das Bild proportional auf 50 % der waagerechten Kantenlänge. || ||`-resize '1024x1024'` ||Verkleinert das Bild auf maximal 1024 Pixel Höhe und Breite unter Beibehaltung des Seitenverhältnisses. || ||`-quality 88%` ||Setzt Qualität der folgenden JPG-Kompression. Je größer die Zahl, desto weniger Artefakte und je größer die Zieldatei. || ||`ZIELDATEI.jpg`||Ausgabe im '''jpg'''-Format mit der vorher angegebenen Qualität. Durch andere Dateiendungen können andere Ausgabeformate gewählt werden. || ||`show:`||Statt eine ZIELDATEI zu speichern wird die Ausgabedatei direkt mit `display` angezeigt. Hilfreich als Vorschau für einen Befehl.|| Anmerkungen: * Die Optionen sollten in der angegebenen Reihenfolge verwendet werden * Die Option `-fx` dauert recht lang == Gescannte Dokumente nachbessern == Wenn man Texte aller Art (Zeitungsartikel, Urkunden, Akten usw.) scannt und als Bilddatei abspeichert, sind die Bilddateien meist weder besonders schön noch klein und handlich: * Die Dateien sind groß, typischerweise um 4 MB für eine DIN-A4-Seite mit 200 dpi im '''.png'''-Format. * Weiße Hintergründe sind nicht weiß, sondern hellgrau, hellbraun usw. Beim Ausdrucken wirken sie schmutzig und verschwenden Tinte. * Schwarze Buchstaben sind dunkelgrau und wirken beim Ausdrucken blass. * Schwarzweiße Kanten bekommen farbige Pixel. Manchmal kann man bereits im Scanprogramm "Strichgrafik" o.ä. wählen, so dass beim Einscannen speichersparende und optisch ansprechende Schwarzweißgrafik entsteht. Wenn das keine gewünschten Ergebnisse bringt, kann man immer noch mit voller Farbtiefe einscannen und durch geschickte Nachbearbeitung die Bilddateien optisch verschönern und gleichzeitig verkleinern. {{{#!vorlage Befehl convert ROHDATEI.png \ -normalize -gamma 0.8,0.8,0.8 \ -colorspace HSL \ -channel saturation -fx 'min(1.0,max(0.0,3*u.g-1))' \ -colorspace RGB \ +dither -posterize 3 \ BEARBEITET.png }}} ||<-2 rowclass="titel"> convert|| ||Parameter||Erklärung|| ||`ROHDATEI.png`||Eingabe. Das Dateiformat wird automatisch bestimmt. || ||`-normalize` ||streckt das Histogramm, so dass schwarz die dunkelste und weiß die hellste Farbe ist. || ||`-gamma 0.8,0.8,0.8` ||Dunkelt Mitteltöne (bei Werten kleiner 1) etwas ab. Buchstaben werden ansonsten zu dünn. || ||`-colorspace HSL` ||Wandelt RGB-Werte in Hue-Saturation-Lightness-Werte um. Vorbereitung für nächsten Schritt. || ||`-channel saturation -fx 'min(1.0,max(0.0,3*u.g-1))'` ||Macht aus Farben mit Sättigung < 33 % grau und Farben mit Sättigung > 67 % eine gesättigte Farbe. Hiermit werden bunte Ränder oder Flecken bei unbunten Vorlagen verringert. Eine nähere Erklärung von `-fx` findet man in der Dokumentation von `convert`.|| ||`-colorspace RGB` ||Wandelt HSL-Werte zurück in RGB-Werte um. || ||`+dither -posterize 3`|| Reduziert in jedem Farbkanal die Zahl der Stufen auf 3 ohne Dithering. Empfehlenswert sind 2 bis 4. Hier wird der Hintergrund richtig einheitlich weiß (oder was auch immer). Rauschen verschwindet bis auf ein paar verstreute Pixel.|| ||`BEARBEITET.png`||Ausgabe. Dafür ist das '''png'''-Format geeignet. Dazu einfach einen Dateinamen mit Endung '''.png''' wählen.|| Mit diesen Optionen liefert `convert` recht zuverlässig gute Ergebnisse. Die Ausgabe (eine DIN-A4-Seite mit 200 dpi) ist ca. 50 - 300 kB groß. Bei Bedarf können die Gammawerte, die Steilheit der Sättigungsfunktion und die Zahl der Stufen bei der Reduktion der Intensitätsstufen verändert werden. Anmerkungen: * Die Abarbeitung von Funktionen durch `convert` mit Option `-fx` ist etwas langsam. Der obige Befehl kann daher rund eine Minute dauern. * Bilder in den gescannten Dokumenten werden ebenfalls mit bearbeitet und erscheinen daher verfremdet. Hier hilft nur manuelles Einsetzen des Originalbildes in die Ausgabe. * Wenn die Texthintergründe Rasterpunkte enthalten, erscheinen sie meist auch in der Ausgabe. Hier muss man ggf. manuell mit einem Bildbearbeitungsprogramm (z. B. [:GIMP:]) Bereiche markieren und geschickt Farben durch andere ersetzen, um einfarbige Hintergründe zu erhalten, z. B. bei schwarzem Text auf rot-weiß gerastertem Hintergrund würde man rot und weiß durch rosa ersetzen. * Werden Dokumente fotografiert statt eingescannt, können die Bilddateien ebenfalls mit `convert` bearbeitet werden. Es gibt jedoch Probleme, wenn die Vorlage nicht gleichmäßig ausgeleuchtet ist. Außerdem sollte man durch geeignete Wahl des Zooms sicherstellen, dass das Bild nicht tonnen- oder kissenförmig verzerrt ist. == Bilder zusammenführen == So erhält man eine horizontale Collage: {{{#!vorlage Befehl convert +append image1.jpg image2.jpg output_convert_h.jpg }}} Dieser Befehl erstellt eine vertikale Collage: {{{#!vorlage Befehl convert -append image1.jpg image2.jpg output_convert_v.jpg }}} = mogrify = Mit `mogrify` kann man ein Bild laden, bearbeiten und abspeichern. Es hat viele, aber nicht alle Optionen gemeinsam mit `convert`. Der wesentliche Unterschied zu convert ist, dass `mogrify` die Eingabedatei durch die neue Bilddatei ersetzt, statt sie zu überschreiben. {{{#!vorlage Befehl mogrify [OPTIONEN] bilddatei }}} = import = `import` bietet die Möglichkeit, ein Foto des gesamten Bildschirms, eines Fensters oder eines definierten Ausschnittes zu erzeugen. Man kann auch in regelmäßigen Abständen Bildschirmfotos erstellen. Obwohl `import` ein Kommandozeilenprogramm ist, arbeitet es über die grafische Benutzeroberfläche mit Unterstützung der Maus. Man tippt einfach im Terminal [3] den Befehl ein: {{{#!vorlage Befehl import ~/window.png }}} Der Mauszeiger verändert sich zu einem Kreuz. Dann kann man auf das gewünschte Fenster klicken oder mit gedrückter Maustaste den Ausschnitt definieren und abspeichern. Falls das nicht klappt, hilft folgende Vorgehensweise: 1. Die Tastenkombination [:Programme_starten:Alt+F2] verwenden 1. {{{import ~/window.png}}} eingeben und bestätigen 1. Gewünschtes Fenster auswählen == Ausschnitt in der Kommandozeile wählen == Natürlich kann man den gewünschten Ausschnitt auch in der Kommandozeile definieren, z. B. den rechten oberen Bereich des Bildschirms: {{{#!vorlage Befehl import -window root -crop 512x256-0+0 -quality 90 corner.png }}} Man kann auch einzelne Fenster und Fensterausschnitte definieren. Das Fenster kann man durch seinen Namen oben auf der Fensterleiste benennen. Wenn z. B. [:Google Earth:] die Bilder zu dunkel darstellt, kann man mit mehreren ImageMagick-Programmen hintereinander einen Screenshot des Ausschnitts des Fensters erstellen, das Bild bearbeiten und schließlich darstellen: {{{#!vorlage Befehl import -silent -pause 3 -window 'Google Earth' -crop 800x650+250+50 /tmp/screenshot.png \ && convert /tmp/screenshot.png -fx '4*u' -normalize /tmp/screenshot.png \ && display /tmp/screenshot.png \ && rm -f /tmp/screenshot.png }}} Mit `-silent` wird der Piepton unterdrückt. Dann wartet `import` drei Sekunden (Währenddessen muss man vom Terminalfenster zum Google-Earth-Fenster wechseln, weil sonst abgedeckte Bereiche schwarz erscheinen würden). Dann wird aus dem gewählten Fenster der mit `-crop` gewählte Ausschnitt als Bild gespeichert. `convert` bearbeitet das Bild, und `display` stellt es dar. == Fernwartung == Die Programme `import` und `display` lesen von bzw. schreiben auf das Display, welches in der Umgebungsvariable `$DISPLAY` angegeben ist (auf dem lokalen Rechner meist "`localhost:0.0`"). Man kann sich daher auf einem entfernten Rechner anmelden, dessen lokalen Bildschirm abfotografieren und auf dem Bildschirm des eigenen Rechners anzeigen lassen. Das ist nützlich, wenn man den entfernten Rechner über [:SSH:] wartet und dem Anwender auf seinen Bildschirm schauen möchte. Dazu meldet man sich über SSH in den entfernten Rechner an (in diesem Beispiel `gast@rechner`). Die Verbindung vom entfernten Rechner zum lokalen XServer muss dabei getunnelt werden (das kann auch von einem Windows-Rechner mit SSH-Client und XServer geschehen). Dann muss man das Display und den Benutzernamen des lokalen Anwenders auf dem entfernten Rechner bestimmen (Display ist meist "`:0.0`".) Dazu sucht man alle XServer in der Prozessliste und findet dort das Display in der angezeigten Kommandozeile. In diesem Beispiel sind es zwei XServer mit den Displays "`:0.0`" und "`:20.0`". {{{#!vorlage Befehl gast@rechner:~ $ ps -ef| grep /X }}} Ergebnis: {{{ root 22870 22866 0 15:34 tty8 00:00:01 /usr/X11R6/bin/X :20 -br -audit 0 -auth /var/lib/gdm/:20.Xauth -nolisten tcp vt8 root 24709 4152 0 11:20 tty7 00:02:28 /usr/X11R6/bin/X :0 -br -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7 gast 26726 23513 0 16:07 pts/2 00:00:00 grep /X }}} Um festzustellen, welches Display gerade aktiv ist, nimmt man die Parent-Prozess-ID der XServer und sucht darunter die Kindprozesse `gnome-session` oder `x-session-manager`. {{{#!vorlage Befehl gast@rechner:~ $ ps -ef| grep 4152 | grep session gast@rechner:~ $ ps -ef| grep 22866 | grep session }}} Ergebnis: {{{ bob 23005 22866 0 15:35 ? 00:00:00 x-session-manager }}} Es gibt keinen Kindprozess mit diesen Namen unter 4152, aber einen unter 22866. Das heißt, das aktive Display ist also "`:20.0`", und der Benutzer heißt `bob`. Auf dem Zielserver legt man eine Datei an, die sowohl der Gast als auch Bob beschreiben können: {{{#!vorlage Befehl gast@rechner:~ $ touch /tmp/screenshot.png gast@rechner:~ $ chmod 666 /tmp/screenshot.png }}} Das Display kann nur vom Besitzer ausgelesen werden. Das bedeutet, der Gast muss `import` als Benutzer `bob` starten und das Bild in die gemeinsam lesbare Datei abspeichern. Die Option `-silent` bewirkt, dass es auf dem entfernten Rechner nicht piept, und muss, wenn sie verwendet werden soll, nach `display` stehen. Bei Bedarf kann `import` die Grafik verkleinern, den Farbraum reduzieren und vieles mehr. {{{#!vorlage Befehl gast@rechner:~ $ sudo su - bob -c 'import -display :20.0 -silent -window root -resize 50% /tmp/screenshot.png' }}} Dann kann man mit `display` das Bild auf dem Default-Display anzeigen. Das Default-Display ist hier `localhost:13.0`, das über den SSH-Tunnel zum lokalen Rechner getunnelt wird (Man kann es sich durch `echo $DISPLAY` anzeigen lassen). {{{#!vorlage Befehl gast@rechner:~ $ display /tmp/screenshot.png }}} {{{ Xlib: extension "Generic Event Extension" missing on display "localhost:13.0". ^C gast@rechner:~ $ }}} Die oben gezeigte Fehlermeldung kann man ignorieren. `display` kann über das Fenster auf dem lokalen Rechner geschlossen werden oder durch [[Vorlage(Tasten, strg+C)]] in der Konsole auf dem entfernten Rechner. = montage = Hat man einen (komplizierten) Sachverhalt mit Hilfe einer Bilderfolge festgehalten, ist es empfehlenswert, das Ganze in ein einziges Bild zusammenzupacken oder in ein [:PDF:]-Dokument zu konvertieren. Bei PDFs würde aber überlicherweise nur ein Bild pro Seite angezeigt. Mit Hilfe des Befehls `montage` im Terminal [2] werden die Einzelbilder zu einem großen Bild zusammengefügt, d.h. in diesem Fall aneinander gehängt und anschließend ins '''.pdf'''-Format umgewandelt. Es entsteht der Eindruck eines "Filmstreifens". Unter den Bildern steht der Dateiname (als Label). {{{#!vorlage Befehl montage -label %f -geometry 800x600+10+10 *.png test.pdf }}} == Bilder zusammenführen == So erhält man die bestmögliche horizontale Collage: {{{#!vorlage Befehl montage image1.jpg image2.jpg image3.jpg image4.jpg -geometry +2+2 output_montage_h.jpg }}} Dieser Befehl erstellt eine vertikale Collage: {{{#!vorlage Befehl montage -mode concatenate -tile 1x image1.jpg image2.jpg output_montage_v.jpg }}} = composite = Mit `composite` lassen sich Bilder übereinander legen. Möchte man beispielsweise statt eines [#Bilder-mit-Wasserzeichen-versehen Wasserzeichentexts] ein Logo als Lizenzinformation verwenden, verwendet man folgenden Befehl: {{{#!vorlage Befehl composite -gravity SouthEast -geometry +50+50 wasserzeichen.png bild.jpg bild_mit_wasserzeichen.jpg }}} um ein Wasserzeichen rechts unten im Bild einzufügen. Im Beispiel wird eine PNG-Datei mit Transparenz verwendet. Ein weiteres Anwendungsbeispiel findet sich im Artikel [:JFotokopie#Benutzung:], das diesen Programmteil für eine "Mehrfachkopie" nutzt. = PDF-Bearbeitung = Mit `convert` können bspw. gescannte Dokumente als PDF gespeichert werden. Die Befehls-Syntax zum einfachen Speichern einer PNG-Datei im PDF-Format lautet: {{{#!vorlage Befehl convert quelle.png ziel.pdf }}} Mit folgendem Befehl kann man Bilder aus PDF-Dateien extrahieren: {{{#!vorlage Befehl pdfimages -j quelle.pdf zielverzeichnis }}} Praktisch ist auch die Verwendung von Wildcards, um mehrere Bilder in ein PDF umzuwandeln. Folgender Befehl wandelt bspw. alle im momentanen Arbeitsordner befindlichen '''.jpg'''-Dateien in ein mehrseitiges PDF um: {{{#!vorlage Befehl convert *.jpg ziel.pdf }}} Will man mehrere Bilder in einem Ordner zu einem druckfertigen PDF Dokument mit gleichmäßiger DINA4-Anpassung zusammenfügen, hilft folgender Befehl: {{{#!vorlage Befehl convert *.* -compress jpeg -resize 1240x1753 -units PixelsPerInch -density 150x150 -page a4 multipage.pdf }}} [[Anker(Massenbearbeitung)]] = Stapelverarbeitung = Um mehrere Dateien auf einmal zu konvertieren (Batch-Modus), benutzt man das Schleifenkonstrukt [:Shell/Bash-Skripting-Guide_für_Anfänger#Schleifen:for ... in] einer [:Shell:]. Beispiel: {{{#!vorlage Befehl for i in *.png; do BEFEHL $i -OPTIONEN $i; done }}} In diesen Beispiel werden alle Bilder eines Ordners im PNG-Format nacheinander umgewandelt. `BEFEHL` und `-OPTIONEN` bitte entsprechend anpassen. Vorsicht: die Originaldateien werden überschreiben! Möchte man das nicht, legt die folgende Befehlsvariante neue Dateien mit dem Präfix "edit-" an: {{{#!vorlage Befehl for i in *.png; do BEFEHL $i -OPTIONEN edit-$i; done }}} Alternativ zu der Schleife kann auch [#mogrify mogrify] (siehe oben) verwendet werden. Beispiel: {{{#!vorlage Befehl mogrify -format jpg *.png }}} In dem Beispiel werden alle Dateien im aktuellen Verzeichnis vom PNG-Format ins JPG-Format umgewandelt. = Problembehebung = In neueren Ubuntu-Versionen kann es vorkommen, dass nicht mehr alle Umwandlungen (bspw. pdf) vorgenommen werden können, da dazu die Rechte fehlen. Wenn man die beschränkende Datei bearbeitet oder mit {{{#!vorlage Befehl mv /etc/ImageMagick-6/policy.xml /etc/ImageMagick-6/policy.xmlout }}} umbenennt, geht alles wieder. Um die Rechte beispielsweise nur für PDF-Dateien zu ändern, kann die Zeile {{{ }}} in der '''policy.xml''', in {{{ }}} geändert werden. = Alternativen = [:ExactImage:] von [http://www.exactcode.de/ ExactCODE] {en} liefert auf Geschwindigkeit optimierte Optionen, allerdings nicht in dem Umfang wie ImageMagick. Auch mit [:GIMP:] sind sehr viele Bearbeitungsmöglichkeiten gegeben, allerdings eher für die Bearbeitung einzelner Bilder, weniger für Stapelverarbeitung. = Links = * [http://www.imagemagick.org/ Projektseite] {en} * [http://www.imagemagick.org/Usage/ Examples of ImageMagick Usage] {en} - zahlreiche bebilderte Beispiele, sehr empfehlenswert * [http://www.fmwconcepts.com/imagemagick/ Fred's ImageMagick Scripts] {en} - umfangreiche Skriptsammlung, mit Beispielbildern * [topic:fotos-nach-farbe-sortieren:Fotos nach Farbe sortieren] - Diskussion im Forum * [http://www.linux-community.de/Internal/Artikel/Print-Artikel/LinuxUser/2008/02/Pixelzauber Pixelzauber - Bildbearbeitung auf der Konsole] {de} - Artikel LinuxUser 02/2008 * [https://youtu.be/mf7g4nvLlms Vortrag über ImageMagick] {de} Youtube-Video Kurt Pfeifle auf der Ubucon 2014 * [https://medium.com/@contactsunny/a-few-basic-but-powerful-imagemagick-commands-b5809b0a1076 A few basic (but powerful) ImageMagick commands] {en} # tag: Grafik, Shell, Bildbearbeitung