Bildgröße reduzieren und thumbnail generieren.
In wiki.js kann man komfortabel Bilder inkludieren.
Die Größe, also sowohl die Auflösung als auch die Dateigröße ist oft nicht optimal.
Klar, man kann die Bilder skalieren, ganz nach Markdown Methode mit =1234x Pixel
Funktioniert, aber an der Dateigröße ändert das natürlich nichts.
resize_images.sh
#!/bin/bash
# resize_images.sh
# by bed
# $Revision: 1.3 $
# das Skript zeigt die Ursprungsgröße des Bildes an und das 1280x-Bild nur dann generieren,
# wenn die Breite des Originals größer als 1280 Pixel ist.
# ausserdem wird ein thumbnail generiert
# Wir verwenden identify -format "%w %h" und parsen die Breite und Höhe mit awk.
# Die Bedingung überprüft die Breite des Bildes korrekt.
# Überprüfen, ob ein Argument übergeben wurde
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <image_file>"
exit 1
fi
# Datei und Verzeichnisnamen extrahieren
input_file="$1"
base_name=$(basename "$input_file")
dir_name=$(dirname "$input_file")
# Neue Dateinamen definieren
output_file_1280="${dir_name}/${base_name%.*}_1280x.${base_name##*.}"
output_thumbnail="${dir_name}/${base_name%.*}_thumbnail.${base_name##*.}"
# Ursprungsgröße ermitteln
original_info=$(identify -format "%w %h" "$input_file")
original_width=$(echo "$original_info" | awk '{print $1}')
original_height=$(echo "$original_info" | awk '{print $2}')
echo "Originalgröße: ${original_width}x${original_height}"
# Bildgröße überprüfen und ggf. verkleinern
if [ "$original_width" -gt 1280 ]; then
convert "$input_file" -auto-orient -resize 1280x1024\> -strip -define jpeg:extent=256kb "$output_file_1280"
echo "Großes Bild generiert: $output_file_1280"
else
echo "Das Bild ist kleiner oder gleich 1280px in der Breite, kein großes Bild erforderlich."
fi
# Thumbnail generieren mit transparentem Hintergrund
convert "$input_file" -auto-orient -resize 150x150\> -gravity center -background transparent -extent 150x150 -strip "$output_thumbnail"
echo "Thumbnail generiert: $output_thumbnail"