Digitales Prototyping: Automatisierung via Terminal / 2020-04-30 / Matthias Edler-Golla, CC BY-SA 4.0


|



 



Hallo!


Themen heute

  • Dateien stapelweise umbenennen
  • verschiedene Image Magick Anwendungen
  • Bash-Scripte und ein paar Anwendungsbeispiele

Dateien stapelweise umbenennen

Vorher => Nachher Ansicht

Oft ist es sehr mühsam, bei vielen Dateien von Hand die Datei-Endungen oder Teile des Namens zu verändern. Via Terminal geht das relativ einfach und es ist egal, um wieviele Dateien es sich handelt!

„Rename“ ist nicht automatisch auf Euren Rechnern, Ihr müsst dies erst noch installieren:

„Rename“ installieren (Mac)

brew install rename

„Rename“ installieren (Ubuntu)

sudo apt install rename

Download der Übungsdateien

Ladet die Zip-Datei "Temperaturen.zip" herunter und entpackt diese auf Eurem Desktop

Regular expression

rename verwendet Regular expression um Suchkriterien festzulegen. Diese zeigen sich in den unten aufgeführten Beispielen durch die eigenartigen Buchstabenkombinationen wie z.B. "s/_/-/g".

In den Ordner mit den Übungsdateien wechseln

cd ~/Desktop/Temperaturen/

Datei-Endung von ".txt" auf ".csv" ändern

rename -v 's/\.txt$/\.csv/' *.txt

Das "-v" bedeutet "verbose", Ihr bekommt Rückmeldung, was gerade passiert…

Jahreszahl auf "19" kürzen

rename -n 's/2019/19/g' * 

Das "-n" bedeutet, dass im Terminal nur gezeigt wird, was sich ändern würde – zum tatsächlichen Ändern die Option "-n" entfernen!

Bindestrich statt Unterstrich

rename 's/_/-/g' * 

"temp" statt "temperatur"

rename 's/temperatur/temp/g' * 

Online-Tutorial

https://wiki.ubuntuusers.de/rename/


Image Magick

imagemagick.org

Use ImageMagick® to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, GIF, HEIC, TIFF, DPX, EXR, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.

Image Magick ist das Schweizer Messer unter den Bildverarbeitungsprogrammen, läuft auch auf dem Raspberry Pi und kann viele Bilder gleichzeitig bearbeiten (Stapelverarbeitung)


Image Magick: Bilder stapelweise verkleinern

Download der Übungsbilder

Ladet die Zip-Datei "Demo-Fotos.zip" herunter und entpackt diese auf Eurem Desktop

Viele Bilder automatisch auf eine gewünschte Größe verkleinern – um z.B. für eine Website schnell ladende Vorschaubilder zu haben…

In den Ordner mit den Bildern wechseln

cd ~/Desktop/Demo-Fotos/

Ordner "Thumbs" und "Gross" anlegen

mkdir Thumbs && mkdir Gross

alle Bilder in den Ordner "Gross" verschieben

mv *.jpg Gross

in Ordner "Gross" wechseln

cd Gross

Anzahl Dateien in dem Ordner, in dem man sich gerade befindet

find . -type f | wc -l

hier sind 30 Fotos enthalten!

alle Bilder aus dem aktuellen Ordner in einem neuen Ordner Thumbs verkleinern

mogrify -strip -interlace Plane -sharpen 1 -resize 320 -quality 60 -path ../Thumbs *.jpg
  • "-strip" entfernt alle Meta-Informationen (z.B. GPS-Daten) und macht die Datei dadurch (etwas) kleiner
  • "-interlace Plane" sorgt für ein schrittweises Laden des Bilder (erst grob, dann feiner), wenn Verbindung langsam ist
  • "-sharpen 1" schärft das Foto, ähnlich "unschaft maskieren"-Filter bei Photoshop
  • es reicht, die Breite (hier 320) anzugegen, die Höhe wird automatisch proportional richtig berechnet
  • die Qualität soll dabei 60% sein
  • der Zielordner ist "Thumbs" – relativen Pfad beachten
  • Ihr könnt natürlich einige der oben gezeigten Optionen auch weglassen bzw. anpassen!

Achtung, der Prozess kann eine Weile dauern, nicht abbrechen! Danach hat man im Ordner "Thumbs" die gleichen Bilder wie im Ordner "Gross", aber alle auf die Größe 320x240 heruntergerechnet…

zur Kontrolle in Ordner "Thumbs" wechseln und dort Dateien zählen

cd ../Thumbs
find . -type f | wc -l

Die Alternative wäre gewesen, alle Fotos von Hand zu verkleinern, oder aber z.B. in Photoshop eine Automatisierung zu erstellen…

gutes Tutorials


Image Magick: Bilder-Kollage automatisieren

Image Magick kann einem viele (langweilige) Arbeit abnehmen – zum Beispiele alle Bilder in einem Ordner auf einer Seite als Thumbnails zusammenfassen!

Download der Übungsbilder

Ladet die Zip-Datei "Shots.zip" herunter und entpackt diese auf Eurem Desktop

ACHTUNG

Die von Image Magick erzeugten Bilder werden außerhalb des Ordner Shots abgespeichert, damit sie bei den jeweiligen Aufrufen nicht mit verwendet werden – deswegen z.B. „../collage_horizontal.jpg“. Sie liegen somit direkt auf Eurem Desktop!

in den Demo-Ordner wechseln, wo die Beispiel-Bilder liegen

cd ~/Desktop/Shots

horizontale Kollage aus 2 Bildern

convert +append shot_1.jpg shot_2.jpg ../collage_horizontal.jpg

vertikale Kollage aus 3 Bildern

convert -append shot_1.jpg shot_2.jpg shot_3.jpg ../collage_vertikal.jpg

durch -append werden die Bilder untereinander angeordnet!

vertikale Kollage aus allen Bildern

convert -append *.jpg ../collage_vertikal_alle.jpg

horizontale Montage aller Bilder

montage *.jpg -geometry +5+5 ../montage_h.jpg 

"+5+5" macht 5 * 5-breiten, weißen Rahmen um die Bilder

vertikale Montage aller Bilder, 1-spaltig

montage -mode concatenate -tile 1x *.jpg ../montage_v.jpg 

vertikale Montage aller Bilder, 3-spaltig

montage -mode concatenate -tile 3x *.jpg ../montage_v_2.jpg 

vertikale Montage aller Bilder, 3-spaltig, verkleinert und beschriftet

montage -label %f -mode concatenate -geometry +5+2 -resize 25% -tile 3x *.jpg ../montage_v_3.jpg 
  • "-label %f" fügt unterhalb der Bilder den jeweiligen Namen ein
  • "+5+2" macht 5*2-breiten, weißen Rahmen um die Bilder
  • "-resize 25%" verkleinert die Bilder um 25%

Probiert es doch auch mal mit eigenen Bilder aus!


Image Magick: Animated Gif

Aus beliebig vielen Bildern eines Ordners ein Animated Gif erstellen – die Bilder müssen gleich groß sein!

Bitte verwendet zum Ausprobieren die Bilder aus dem Ordner Shots, die auch beim vorherigen Slide verwendet wurden!

in Ordner "Shots" wechseln

cd ~/Desktop/Shots

Ordner "Thumbs" erzeugen

mkdir ../Thumbs

um 93.75% verkleiner -- ergibt meine gewünschte Breite von 960px

mogrify -resize 93.75% -quality 80 -path ../Thumbs *.jpg 

in Ordner CD wechseln

cd ../Thumbs

Animated Gif mit 0.5 Sekunden Verzögerung, Gif läuft endlos ab

convert -delay 50 -loop 0 *.jpg ../testimage_960.gif

" -loop 5" würde die Animation fünfmal ablaufen lassen und dann aufhören

Ordner Thumbs löschen, wird nicht mehr gebraucht

cd ../
rm -r ../Thumbs

Image Magick: Wasserzeichen

Mit Image Magick kann man Bilder mit Wasserzeichen versehen – z.B. als einfacher Copyright-Schutz

Download der Übungsbilder

Ladet die Zip-Datei "Wasserzeichen.zip" herunter und entpackt diese auf Eurem Desktop

Wasserzeichen-Bild

am besten ein Bild im PNG-Format, bei dem der Hintergrund transparent ist;

In den Ordner mit den Bildern wechseln

cd ~/Desktop/Wasserzeichen/Shots/

Das Wasserzeichen muss an einer genau definierten Stelle abgelegt sein – für die folgenden Anweisungen genau hier:

~/Desktop/Wasserzeichen/ampersand.png

Bild wird im gleichen Ordner gespeichert

composite -gravity SouthEast "../ampersand.png" "shot_1.jpg" "shot_1_watermark.jpg"
  • "SouthEast" Wasserzeichen rechts unten
  • "shot_1.jpg" ist das exist. Bild, "shot_1_watermark.jpg" das neue
  • will man ein Bild überschreiben, muss man zweimal den gleichen Namen hintereinander angeben

Wasserzeichen in der Mitte

composite -gravity Center "../ampersand.png" "shot_2.jpg" "shot_2_watermark.jpg"

Wasserzeichen links oben

composite -gravity NorthWest "../ampersand.png" "shot_3.jpg" "shot_3_watermark.jpg"

durch "-compose Multiply" wird das Wasserzeichen sehr dezent

composite -compose Multiply -gravity NorthEast -geometry +10+10 "../ampersand.png" "shot_4.jpg" "shot_4_watermark.jpg"

"-geometry +10+10" 10 Pixel vom Rand

Stapelverarbeitung

Man kann auch ganze Stapel von Bildern automatisch mit Wasserzeichen versehen – dazu ist ein Bash Script notwendig, Siehe nächste Slides!


Bilder als webp speichern

Wie Ihr seht, wird webp schon von fast allen populären Browsern unterstützt: https://caniuse.com/#search=webp

Das Format soll als neuer offener Standard für verlustbehaftet komprimierte Echtfarb-Grafiken im Web dienen und wird so als direkte Konkurrenz zum älteren JPEG platziert, gegenüber dem es bei vergleichbarer Qualität deutlich kleinere Dateien ermöglichen soll.

Download der Übungsbilder

Ladet die Zip-Datei "WebP.zip" herunter und entpackt diese auf Eurem Desktop

Webp installieren (Homebrew)

brew install webp

Webp installieren (WSL)

sudo apt-get install webp

In den Ordner mit den grossen Bildern wechseln

cd ~/Desktop/WebP

1.Bild des Ordners "Gross" als webp-Bild im Ordner "WebP" speichern

cwebp -q 80 shot-00.jpg -o shot-00.webp

Eine Datei-Größen-Ersparniss von ca. 33%!

Höhe auf 400px reduzieren, Breite dann automatisch

cwebp -q 80 -resize 0 400px shot-01.jpg -o shot-01.webp

Webp-Bilder ansehen

Zum schnellen Ansehen könnt Ihr die so erzeugten Bilder direkt auf ein Browser-Fenster (Firefox, Chrome) ziehen…

hier die Bilder "shot-00.jpg" und "shot-00.webp"

Webp heute nutzen

Wenn Ihr aktuell webp-Bilder auf Euren Websites nutzen wollt, gibt es dazu einen guten Artikel…

HTML

<picture>
    <source srcset="p/shot-00.webp" type="image/webp">
    <source srcset="p/shot-00.jpg" type="image/jpeg"> 
    <img src="p/shot-00.jpg" alt="Dachauer Straße">
</picture>

Bash-Scripte (Mac)

Bash scripts are used by Systems Administrators, Programmers, Network Engineers, Scientists and just about anyone else who uses a Linux/ Unix system regularly. No matter what you do or what your general level of computer proficiency is, you can generally find a way to use Bash scripting to make your life easier.

Mit Bash-Scripten könnt Ihr ganz viele langweilige Sachen automatisieren! Auf den nächsten Slides werde ich Euch ein paar Sachen zeigen, die ich häufig verwende:

Bitte legt hierfür auf Eurem Desktop den Ordner "bash" an und wechselt dort hinein:

cd ~/Desktop && mkdir bash && cd bash

Erzeugt Euer erstes Bash-Script "helloWelt.sh"

nano helloWelt.sh

dort den hier unten aufgeführten Code einfügen und sichern ("ctrl + x" und dann "y")

Bash-Script „helloWelt.sh“

#!/bin/bash

echo Hallo Welt!

exit 0

Bash-Script starten

sh helloWelt.sh

Online-Tutorial

https://ryanstutorials.net/bash-scripting-tutorial/


Bash-Scripte (Windows/Ubuntu)

Unter Ubuntu müssen die Bash-Scripte an fixen Stelle liegen und zusätzlich „ausführbar“ gemacht werden!

ACHTUNG: Das trifft auch alle Bash-Skripte zu, die auf den nächsten Slides vorgestellt werden: Sie müssen sich alle im Ordner bin befinden und ausführbar ("sudo chmod 755 …") gemacht werden, damit sie funktionieren!

bin-Ordner anlegen und dort hineinwechseln

cd ~ && mkdir bin && cd bin

Erzeugt Euer erstes Bash-Script "helloWelt.sh"

nano helloWelt.sh

dort den hier unten aufgeführten Code einfügen und sichern ("ctrl + x" und dann "y")

Bash-Script „helloWelt.sh“

#!/bin/bash

echo Hallo Welt!

exit 0

jetzt müsst Ihr – anders als am Mac – die Datei noch "ausführbar" machen:

„helloWelt.sh“ ausführbar machen

sudo chmod 755 helloWelt.sh

das Passwort für Euren Ubuntu-User eingeben und ENTER-Taste drücken. Jetzt kann „helloWelt.sh“ als ausführbares Script genutzt werden

Achtung

Da es vermutlich das 1. Bash-Script ist, das Ihr bei "bin" anlegt, müsst Ihr jetzt Euren Rechner neu starten, damit die Bash-Scripte funktionieren. Das ist bei weiteren Bash-Scripten nicht mehr nötig!

Bash-Script starten

helloWelt.sh

Bash-Scripte: Webordner und -dateien anlegen

Wenn ich mit einer neuen Website anfange, schaut meine Ordner- und Dateistruktur meistens wie auf dem oben gezeigten Screenshot aus. Von Hand ist es mühsam, immer wieder die gleichen Ordner und Dateien anzulegen – deswegen habe ich mir dazu ein Bash-Script geschrieben:

Mac: Wechselt in den Ordner "bash"

cd ~/Desktop/bash

Ubunt: Wechselt in den Ordner "bin"

cd ~/bin

Erzeugt dort das Bash-Script "webdesign.sh"

touch webdesign.sh

Die so erzeugte, leere Textdatei könnt Ihr jetzt mit einem Editor wie Brackets oder Atom öffnen und mit dem Inhalt des unten gezeigten Bash-Scripts befüllen!

hier – mit vielen Kommentaren versehen – das Script "webdesign.sh" –  probiert es doch mal aus!

webdesign.sh

#!/bin/bash

# das Script erzeugt diverse Ordner und Dateien,
# die typischerweise beim Start eines neuen Web-Projektes benötigt werden

# ============== Pfad-Angabe ==============

# Hier den kompletten Pfad andgeben
echo Bitte Pfad - ohne Anführungsstriche - angeben, wo der Ordner und die Dateien erzeugt werden sollen. Ohne Angaben wird der Ordner auf dem Desktop angelegt!
read -p 'Pfad: ' Pfad

# Ohne Angaben, dann auf Desktop
if [ ! $Pfad ]
then
    Pfad=~/Desktop/
fi

cd $Pfad

# ============== Ordner-Angabe ==============

# der Name des gewünschten Ordners am Ende von $Pfad
echo Bitte Ordnername – ohne Anführungsstriche – angeben:
read -p 'Ordner: ' Ordner

# Ohne Angaben wird der Ordner "HTML-Test" genannt
if [ ! $Ordner ]
then
    Ordner=HTML-Test
fi

mkdir $Ordner && cd $Ordner

# ============== erzeugen der Ordner und Dateien ==============

touch index.html

# alle benötigten Ordner anlegen
mkdir f && mkdir c && mkdir js && mkdir p

# style.css im Ordner c anlegen
cd c && touch style.css && cd ../

# script.js im Ordner js anlegen
cd js && touch script.js && cd ../

# Ausgabe im Terminal, dass alles angelegt ist
echo Webdesign-Files bei $Pfad$Ordner angelegt!

exit 0

Ubuntu: "webdesign.sh" ausführbar machen

sudo chmod 755 webdesign.sh

Mac: Aufruf im Terminal

cd ~/Desktop/bash && sh webdesign.sh

Ubuntu: Aufruf im Terminal

webdesign.sh

Bash-Script zum bequemen Herunterrechnen von Bildern

Das hier vorgestellte Script verwendet die vorhin vorgestellten "mogrify"-Befehle von imageMagick, erlaubt aber ganz einfach, die gewünschte Breite der Bilder direkt im Terminal anzugeben.

Mac: Wechselt in den Ordner "bash"

cd ~/Desktop/bash

Ubunt: Wechselt in den Ordner "bin"

cd ~/bin

Erzeugt dort das Bash-Script "thumbnails.sh"

touch thumbnails.sh

Die so erzeugte, leere Textdatei könnt Ihr jetzt mit einem Editor wie Brackets oder Atom öffnen und mit dem Inhalt des unten gezeigten Bash-Scripts befüllen!

Das Script rechnet automatisch die Bilder auf die gewünschte Größe herunter und meldet sich, wenn die Aufgabe erledigt ist.

hier – mit vielen Kommentaren versehen – das Script "thumbnails.sh" – probiert es doch mal aus!

thumbnails.sh

#!/bin/bash

# erzeugt den Ordner "Breite_XX" im Ordner, in dem man sich befindet,
# erstellt mit ImageMagick verkleinerte Bilder und legt diese im Ordner "Breite_XX" ab
# die Namen der Bilder bleiben erhalten

# ============== Pfad-Angabe ==============

# Hier den kompletten Pfad angeben, wo sich die Bilder befinden
echo Pfad - ohne Anführungsstriche - angeben, wo sich die runterzurechnenden Bilder befinden, z.B. /Users/thias/Desktop/Photos
read -p 'Pfad: ' Pfad

# dorthin wechweln
cd $Pfad

# Zählt die Dateien im Ordner und fügt diese in die Variable "Anzahl" ein
# -maxdepth 1 sorgt dafür, dass nicht in tiefere Ordner-Strukturen gezählt wird
# -iname ".*" zählt die unsichtbaren Dateien nicht mit
Anzahl=$(find . -maxdepth 1 -type f \( ! -iname ".*" \) | wc -l)

# ============== Breite-Angabe ==============

# gewünschte Breite der Bilder
echo gewünschte Breite der Bilder – Grundeinstellung 400:
read -p 'Breite: ' Breite

# gibt man keine Breite an, wird 400 genommen
if [ ! $Breite ]
then
    Breite=400
fi

ZielOrdner=Breite_$Breite

mkdir $ZielOrdner

echo $ZielOrdner bei $Pfad angelegt, dort werden die heruntergerechneten Bilder gespeichert

# ============= Qualitäts-Angaben =============

# gewünschte Qualität der Bilder
echo gewünschte Qualität der Bilder – Grundeinstellung 70:
read -p 'Qualität: ' Qualitaet

# gibt man keine Qualitaet an, wird 70 genommen
if [ ! $Qualitaet ]
then
    Qualitaet=70
fi

echo $Anzahl Bilder werden auf $Breite px mit der Qualität $Qualitaet % heruntergerechnet, das kann etwas dauern!

# ============= das eigentliche Skalieren aller Bilder =============

# -strip: EXIF-Informationen entfernen
# -interlace Plane: Bilder werden progressive geladen
mogrify -strip -interlace Plane -sharpen 1 -resize $Breite -quality $Qualitaet -path $ZielOrdner *.jpg

# Meldung im Terminal, dass das Runterrechnen erledigt ist
echo $Anzahl Bilder bei $Pfad/$ZielOrdner angelegt!

exit 0

Ubuntu: "thumbnails.sh" ausführbar machen

sudo chmod 755 thumbnails.sh

Mac: Aufruf im Terminal

cd ~/Desktop/bash && sh thumbnails.sh

Ubuntu: Aufruf im Terminal

thumbnails.sh

Image Magick: Bash-Script Wasserzeichen

Mit folgendem, auf dem Raspi schon installierten Bash-Script könnt Ihr beliebig viele Bilder mit dem Wasserzeichen "ampersand.png" versehen.

Download der Übungsbilder

Ladet die Zip-Datei "Wasserzeichen-2.zip" herunter und entpackt diese auf Eurem Desktop

Wechselt in den Ordner

cd ~/Desktop/Wasserzeichen-2

Mac: Verschiebt die dort eingefügte Datei "watermark.sh" in Euren Bash-Ordner und wechselt dort hin

mv watermark.sh ../bash  && cd ../bash

Ubuntu: Verschiebt die dort eingefügte Datei "watermark.sh" in Euren bin-Ordner und wechselt dort hin

mv watermark.sh ~/bin  && cd ~/bin

Ubuntu: "watermark.sh" ausführbar machen

sudo chmod 755 watermark.sh

Mac: ruft das Script "watermark.sh" im Terminal auf

sh watermark.sh

Ubuntu: ruft das Script "watermark.sh" im Terminal auf

watermark.sh

dann Pfad zum Ordner angeben, in dem sich die Bilder befinden, die markiert werden sollen

/Users/thias/Desktop/Wasserzeichen-2/Shots

Achtung: Das ist mein Pfad, der ist bei Euch anders! Rest erledigt das Script

die mit Wasserzeichen markierten Bilder befinden sich dann bei:

ls ~/Desktop/Wasserzeichen-2/Shots/mit_Wasserzeichen

Bash-Script

#!/bin/sh

# https://petermolnar.net/simple-batch-resize-watermark-with-imagemagick/

# Aufforderung an den User, anzugeben, wo sich die zu markierenden Bilder befinden
echo Bitte gewünschten Ordner-Name -ohne Anführungsstriche- angeben, z.B. /Users/thias/Desktop/Wasserzeichen/Shots
read -p 'Ordner: ' ordner

# in den Ordner wechseln
cd $ordner

# wo sollen die überarbeiteten Bilder gespeichert werden
zielOrdner="mit_Wasserzeichen"

# das vorbereitete Wasserzeichen muss sich an der hier angegebenen Stelle befinden!
wasserzeichen="/Users/thias/Desktop/Wasserzeichen/ampersand.png"

# Ordner erzeugen
# Achtung, wenn der Ordner schon existiert, werden die Bilder darin überschrieben
mkdir $zielOrdner

# alle Dateien mit Datei-Endungen verwenden, also ".jpg, .JPG, .jpeg, .png, .PNG"
for fname in *.*; do

    composite -gravity SouthEast -geometry +10+10 $wasserzeichen "$fname" "./$zielOrdner/$fname"

    # Ausgabe bei jedem Bild einzeln
    echo "Wasserzeichen bei $fname eingefuegt!"
done

# Ausgabe, wenn alles fertig ist
echo "Fertig: Alle mit Wasserzeichen markierten Bilder bei $ordner/$zielOrdner" eingefügt

exit 0

Übungen

Ladet die Zip-Datei "Kamera.zip" herunter und entpackt diese auf Eurem Desktop

Führt dann folgende Sachen im Terminal aus

  1. legt im Ordner "Kamera" einen Ordner "gross" an und verschiebt dorthin alle JPGs
  2. legt einen Ordner "klein" im Ordner "Kamera" an und erstellt dort von allen JPGs des Ordners "gross" jeweils eine Verkleinerung in der Breite "400px"
  3. macht einen "Kontaktabzug" mit dem Namen "kontaktabzug.jpg" aller JPGs des Ordners "klein", der 5 Bilder nebeneinander darstellt, die Namen unterhalb des Bildes schreibt und einen 5px breiten Rahmen um die Bilder anlegt; die Datei "kontaktabzug.jpg" soll sich direkt im Ordner "Kamera" befinden
  4. verwendet das beigefügte Wasserzeichen "euro-zeichen.png", um alle JPGs im Ordner "gross" mit einem Wasserzeichen links/unten zu markieren. Dazu solltet Ihr das Bash-Script "watermark.sh" verwenden, das ich vorhin vorgestellt habe. Passt diese so an, dass sich das Wasserzeichen links/unten befindet und das Wasserzeichen "euro-zeichen.png" verwendet wird.

Lösungen

Lösungen

 

  1. legt im Ordner "Kamera" einen Ordner "gross" an und verschiebt dorthin alle JPGs

Ordner anlegen und Bilder verschieben

cd ~/Desktop/Kamera
mkdir gross
mv *.jpg gross

 

  1. legt einen Ordner "klein" im Ordner "Kamera" an und erstellt dort von allen JPGs des Ordners "gross" jeweils eine Verkleinerung in der Breite "400px"

Bilder verkleinern

mkdir klein
cd gross

## auf 400px runterrechnen und bei "klein" speichern
mogrify -strip -interlace Plane -sharpen 1 -resize 400 -quality 80 -path ../klein *.jpg

 

  1. macht einen "Kontaktabzug" mit dem Namen "kontaktabzug.jpg" aller JPGs des Ordners "klein", der 5 Bilder nebeneinander darstellt, die Namen unterhalb des Bildes schreibt und einen 5px breiten Rahmen um die Bilder anlegt; die Datei "kontaktabzug.jpg" soll sich direkt im Ordner "Kamera" befinden

Kontaktabzug erstellen

cd ../klein
montage -label %f -mode concatenate -geometry +5+2 -tile 5x *.jpg ../kontaktabzug.jpg 

 

  1. verwendet das beigefügte Wasserzeichen "euro-zeichen.png", um alle JPGs im Ordner "gross" mit einem Wasserzeichen links/unten zu markieren. Dazu solltet Ihr das Bash-Script "watermark.sh" verwenden, das ich vorhin vorgestellt habe. Passt diese so an, dass sich das Wasserzeichen links/unten befindet und das Wasserzeichen "euro-zeichen.png" verwendet wird.

watermark.sh angepasst (im Ordner ~/Desktop/bash (Mac) bzw. ~/bin/ (Ubuntu) ablegen!)

#!/bin/sh

# https://petermolnar.net/simple-batch-resize-watermark-with-imagemagick/

# Aufforderung an den User, anzugeben, wo sich die zu markierenden Bilder befinden
echo Bitte gewünschten Ordner-Name -ohne Anführungsstriche- angeben, z.B. /Users/thias/Desktop/meineShots
read -p 'Ordner: ' ordner

# in den Ordner wechseln
cd $ordner

# wo sollen die überarbeiteten Bilder gespeichert werden
zielOrdner="mit_Wasserzeichen"

# das vorbereitete Wasserzeichen muss sich an der hier angegebenen Stelle befinden!
wasserzeichen="/Users/thias/Desktop/Kamera/euro-zeichen.png"

# Ordner erzeugen
# Achtung, wenn der Ordner schon existiert, werden die Bilder darin überschrieben
mkdir $zielOrdner

# alle Dateien mit Datei-Endungen verwenden, also ".jpg, .JPG, .jpeg, .png, .PNG"
for fname in *.*; do

    composite -gravity SouthWest -geometry +10+10 $wasserzeichen "$fname" "./$zielOrdner/$fname"

    # Ausgabe bei jedem Bild einzeln
    echo "Wasserzeichen bei $fname eingefuegt!"
done

# Ausgabe, wenn alles fertig ist
echo "Fertig: Alle mit Wasserzeichen markierten Bilder bei $ordner/$zielOrdner" eingefügt

exit 0

Aufruf des Scripts "watermark.sh" (Mac)

cd ~/Desktop/bash
sh watermark.sh

Aufruf des Scripts "watermark.sh" (Ubuntu)

watermark.sh

Pfadangabe während des Scripts "watermark.sh"

Ordner: /Users/thias/Desktop/Kamera/gross

das ist bei Euch natürlich ein anderer Pfad!
 


Danke

Wir hören/sehen uns nächsten Donnerstag (7.5.2020)!

Bleibt gesund!

Weitere Vorträge: