myGully.com

myGully.com (https://mygully.com/index.php)
-   Linux & BSD (https://mygully.com/forumdisplay.php?f=401)
-   -   Linux Befehl Bildgröße DPI (https://mygully.com/showthread.php?t=3265278)

Calli91 23.03.14 13:17

Linux Befehl Bildgröße DPI
 
Hallo.

Gibt es ein Befehl im Terminal um Bilder nach DPI oder ähnliches mit zb. "find" zu finden?
Habe mit Photorec Bilder wiederhergestellt und möchte die Thumbnails löschen. hab aber keine lust mir jedens Bild einzeln anzugucken. das sind nämlich ein paar.

Und wo wir schonmal dabei sind...
Seit kurzem braucht mein Ubuntu ewigkeiten um zu Starten.
in die Shell komme ich ohne probleme. aber der braucht so lange um die GUI zu laden.
fragt mich dann auch nach nem Schlüsselbund und sowas...

Vielen dank schonmal :)

musv 26.03.14 08:26

Eigentlich sind doch Thumbnails etwas kleiner als normale Bilder. Ich hab dann einfachhalber immer nach der Größe gesucht. Also so in der Art:

Code:

find . -iname "*.jpg" -size -16k -exec rm {} \;
löscht ausgehend vom aktuellen Verzeichnis rekursiv alle JPG-Dateien kleiner 16 kb.

Ansonsten gibt's noch das [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]. Das liefert Dir dann so 'ne Ausgabe:

Code:

exiftool sky.jpg
ExifTool Version Number        : 9.53
File Name                      : sky.jpg
Directory                      : .
File Size                      : 274 kB
File Modification Date/Time    : 2014:01:23 19:21:03+01:00
File Access Date/Time          : 2014:03:17 18:04:36+01:00
File Inode Change Date/Time    : 2014:01:23 19:24:54+01:00
File Permissions                : rw-r--r--
File Type                      : JPEG
MIME Type                      : image/jpeg
JFIF Version                    : 1.01
Resolution Unit                : inches
X Resolution                    : 299
Y Resolution                    : 299
Image Width                    : 1280
Image Height                    : 800
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
Image Size                      : 1280x800

Über ein Skript solltest du dann auch auslesen können, was du brauchst.

Calli91 01.04.14 16:39

Ja das ist richtig. aber ich habe da auch Bilder von schlechter Qualität die ne kleine Dateigröße haben aber trd normale Bilder sind.
kann man find mit exiftool benutzen? ich denke ja mal eher nicht.
aber trd Danke für deine Mühe :)

spartan-b292 01.04.14 17:57

Informationen über die Auflösungen sind bei JPEG optional und selbst wenn sie vorhanden sind, sind nicht zwangsläufig in dots per inch angegeben.

musv 17.04.14 10:52

Hab lang nicht mehr reingeguckt.

Zitat:

Zitat von Calli91 (Beitrag 25467566)
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.