Einzelnen Beitrag anzeigen
Ungelesen 17.04.14, 10:52   #5
musv
Mitglied
 
Registriert seit: Dec 2010
Beiträge: 359
Bedankt: 130
musv leckt gerne myGully Deckel in der Kanalisation! | 117527 Respekt Punktemusv leckt gerne myGully Deckel in der Kanalisation! | 117527 Respekt Punktemusv leckt gerne myGully Deckel in der Kanalisation! | 117527 Respekt Punktemusv leckt gerne myGully Deckel in der Kanalisation! | 117527 Respekt Punktemusv leckt gerne myGully Deckel in der Kanalisation! | 117527 Respekt Punktemusv leckt gerne myGully Deckel in der Kanalisation! | 117527 Respekt Punktemusv leckt gerne myGully Deckel in der Kanalisation! | 117527 Respekt Punktemusv leckt gerne myGully Deckel in der Kanalisation! | 117527 Respekt Punktemusv leckt gerne myGully Deckel in der Kanalisation! | 117527 Respekt Punktemusv leckt gerne myGully Deckel in der Kanalisation! | 117527 Respekt Punktemusv leckt gerne myGully Deckel in der Kanalisation! | 117527 Respekt Punkte
Standard

Hab lang nicht mehr reingeguckt.

Zitat:
Zitat von Calli91 Beitrag anzeigen
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:
Code:
/pfad/zu/checkSize
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.
musv ist offline   Mit Zitat antworten