kleine Bilder aussortieren

Keine Ahnung, ob es jemand gebrau­chen kann: Ich hab jeden­falls gerade meine Wall­pa­per- und Foto-Ordner aus­ge­mis­tet und zunächst mal klein­for­ma­tige Bilder (aka ver­irrte Thumb­nails) aus­sor­tiert. Hilf­reich ist hier­bei wie so oft Image­Ma­gick, bzw. dessen Tool identify.

Ich bin kein großer Pro­gram­mie­rer und Bash ist schon gar nicht mein Spe­zi­al­ge­biet, aber ein klei­nes Skript hat mir gute Dienste geleis­tet:

 #!/bin/bash

from=$1   # Quell-Verzeichnis mit Bildern
to=$2     # Ziel-Verzeichnis für zu kleine Bilder
minres=$3 # Mindestauflösung in Pixeln (z.B. 786432 für 1024*768)

cd $from

# Alle jpg-Dateien ansehen
for file in *.jpg; do

  # Breite und Höhe ermitteln
  width=`identify -format '%w' $file`
  height=`identify -format '%w' $file`

  # Auflösung ausrechnen
  ((resol=$width*$height))

  # verschieben, wenn Auflösung kleiner als gewünscht
  if [ "$resol" -lt "$minres" ]; then
    mv $file $to
    echo "verschiebe $file nach $to/  ($width x $height = $resol px)"
  fi
done

# Feierabend!
exit $?

Benutzt wird es etwa mit ./KleineBilder.sh ~/Documents/Wallpapers /tmp/ZuKleineFotos 1296000. jpg-Dateien mit einer Auf­lö­sung von klei­ner als 1440×900 = 1296000 Pixel werden dann nach /​tmp/​ZuKleineFotos/​ver­scho­ben. Dort kann man noch mal drüber schauen und ggf. löschen.

Obacht:

  • Das ange­ge­bene Ver­zeich­nis wird nicht rekur­siv durch­sucht.
  • Es werden aus­schließ­lich Dateien mit der Endung jpg ver­arz­tet (also nicht JPG, jpeg etc.).
  • Bilder mit exo­ti­schen Sei­ten­ver­hält­nis­sen werden u.U. unge­wollt ver­scho­ben.
  • Ggf. werden gleich­na­mige Dateien im Ziel­ver­zeich­nis über­schrie­ben – ein biss­chen Vor­sicht ist also gebo­ten. (Keine Rück­sicht auf Backup-Ver­wei­ge­rer! ;-))

Wer will kann sicher noch ein paar Kom­fort-Funk­tio­nen ergän­zen, die ich hier der Ein­fach­heit halber aus­ge­las­sen habe. Wer alle seine Bilder kor­rekt gedreht hat, mag das Skript viel­leicht dahin­ge­hend ver­än­dern, dass nur die Bild­breite (identify -format '%w' $file) über­prüft wird.

Andwils Avatar

~andwil

Geek aus Kiel. Tobt sich hier vor allem über den Open-Source-Kosmos im Allgemeinen (und Linux im Speziellen) sowie Heavy Metal aus.