Wie werden Bilder basierend auf der Auflösung in Ordner sortiert?
8085
flammable
Hintergrund: Ich habe einen Ordner mit gespeicherten Desktop-Bildern. Ich möchte sie in Ordnern ablegen, basierend auf ihrer Auflösung - 1024x768 usw. Das Erstellen der Ordner im laufenden Betrieb ist ein Bonus. Derzeit befinden sich die Bilder alle in einem Ordner, einige befinden sich jedoch in Unterordnern. Ich kann sie von Hand zusammenführen, wenn das alles einfacher macht.
Ich würde das Terminal vorziehen, obwohl ich immer noch ein Bash-Neuling bin. Ich bin eigentlich kein großer Programmierer.
Ich verwende Mac OS X, bin aber nicht dagegen, zusätzliche Apps zu installieren (MacPorts?) Oder sogar ein anderes Betriebssystem (ich habe Windows XP, Windows Vista und Ubuntu 9 in VMWare eingerichtet ).
Ich weiß, es ist ein Thema von über einem Jahr (tut mir leid, das tut mir leid), aber ich denke, jemand braucht das vollständige Skript, also hier. Nehmen wir die Ideen hier und kompilieren wir sie in ein Skript.
#!/bin/bash for image in *.jpg; do res=$(identify -format %wx%h\\n $image); mkdir -p $res; mv $image $res; done
4
flammable
Seriously, thanks for replying, everyone! I've come back to this, more experienced, and most of the comments here make more sense now.
I tweaked @zatatlan's script slightly to accommodate spaces in filenames and to add more file extensions.
#!/bin/bash for image in *.jpg *.JPG *.jpeg *.JPEG *.gif *.GIF *.bmp *.BMP *.png *.PNG; do res=$(identify -format %wx%h\\n "$image"); mkdir -p $res; mv "$image" $res; done
3
user4126
Es ist möglich, Imagemagick zur Erkennung der Bildauflösung zu verwenden . Wickle es in eine Bash-Schleife und los geht's. Ich werde nicht warten, bis ich zu einer Bash-Shell nach Hause komme, also ist hier etwas unvorstellbar. Die Syntax ist wahrscheinlich falsch, aber es kann Ihnen Anhaltspunkte geben.
for image in $(`*.jpg`) do res=`identify $image | grep -o 'Resolution:'` if [ ! -d $res ]; then mkdir $res fi mv $image $res done
Das Skript erstellt im Handumdrehen Verzeichnisse. Bash und imagemagick sind für mac verfügbar.
Sie können das Skript etwas kürzer und einfacher gestalten, indem Sie den `if'-Block durch ein einfaches` mkdir -p $ res` ersetzen.
Ryan Thompson vor 15 Jahren
0
AmoK Exif Sorter kann Bilder umbenennen und in beliebige Ordner verschieben oder kopieren. Die Ordner können entsprechend den Exif-Daten benannt werden.
Bietet eine Live-Vorschau der Dateinamen, einen integrierten Bild- und Exif-Daten-Viewer, Drag & Drop, Miniaturansicht, automatische Aktualisierungsprüfung und Profile für verschiedene Kameras und Benutzer.
Unterstützt auch Videodateien nach Erstellungsdatum, IPTC-formatierte Dateien.
In JAVA geschrieben, funktioniert auf allen unterstützten Plattformen JRE5. Überprüfen Sie die Funktionsliste auf dem Link.
Lassen Sie sich nicht von der deutschen Sprache entmutigen. Ziehen Sie die Anwendung herunter Spracheund wählen Sie sie aus Englisch.
1
mas
Der ImageMagick- Befehl id kann die Breite und Höhe in Pixeln angeben, z
Sie können dies als Teil einer for-Schleife in ein Bash-Skript einfügen und zur Sicherheit die Dateien in ein Verzeichnis kopieren, das genauso benannt ist wie die Auflösung (prüfen Sie, ob sie vorhanden ist, und erstellen Sie sie, falls nicht).
0
DHayes
Eine grundlegende Methode, die eine grobe Reihenfolge der Auflösung angibt, ist das Sortieren nach Dateigröße. Dies sollte in jedes Betriebssystem integriert werden, sodass Sie nichts Besonderes benötigen. Der große Haken dabei ist, dass das Format für Ihre Fotos dasselbe sein muss, damit dies funktioniert. Dies ist keine perfekte Lösung, aber es kann eine einfache Unterbrechung sein, bis Sie etwas finden, das tatsächlich passt.