Hab lang nicht mehr reingeguckt.
Zitat:
Zitat von Calli91
kann man find mit exiftool benutzen? ich denke ja mal eher nicht.
|
Warum nicht? Wir sind ja hier nicht bei Windows. Ich hab da mal ein S***** geschrieben. Das liest die Auflösung aus und schreibt den Dateiname in eine Datei, wenn die Bildauflösung kleiner als die vorgegebene Mindestauflösung ist.
checkSize (muss mit chmod 755 ausführbar gemacht werden):
Code:
#!/bin/bash
# überprüft die Bildgröße
# für das aktuelle Verzeichnis
# Übergabe Dateiname - prüft nur die aktuelle Datei
# Kein Parameter - prüft das aktuelle Verzeichnis
MIN_WIDTH=300
MIN_HEIGHT=300
function checkaspect()
{
IMG_SIZE=$(exiftool "$line" | grep "Image Size")
RES=$(echo $IMG_SIZE | sed "s/.*:\s//")
XRES=$(echo $RES | cut -d "x" -f1)
YRES=$(echo $RES | cut -d "x" -f2)
if [ "$YRES" -lt "$MIN_HEIGHT" ] || [ "$XRES" -lt "$MIN_WIDTH" ]; then
echo -e "\033[46;0;31m$RES" "\t" "$line" "\033[0m"
echo "$RES" "\t" "$line" >> "small_pics.txt"
else
echo -e "$RES" "\t" "$line"
fi
}
if [ -n "$1" ]; then
line="$@"
checkaspect
else
ls -1 *.jpg | while read line; do
checkaspect
done
fi
Benutzung:
prüft alle jpg-Dateien im aktuellen Verzeichnis und gibt diese mit der Auflösung aus. Ist ein Bild kleiner als 300x300 (siehe MIN_WIDTH und MIN_HEIGHT), dann erscheint der Dateiname rot. Der Eintrag wird auch in die Datei small_pics.txt geschrieben.
Code:
find . -iname "*.jpg" -exec /pfad/zu/checkSize {} \;
Jagt alle Dateien, die mit find gefunden werden durch
checkSize. Kleine Bilder werden ebenfalls wieder nach
small_pics.txt geschrieben.
Willst du anstatt der Bildauflösung die DPI-Zahl auswerten, schreib das S***** entsprechend um. Ansonsten macht es aber genau das, was du wolltest.