Suchen und entfernen Sie alle Fotos unterhalb einer bestimmten Größenschwelle

Also, ich hatte die Festplatte eines Verwandten zusammengebrochen, und ich habe photorec verwendet, um nach den offensichtlichsten Dateien zu suchen, die aufbewahrt werden sollten (glücklicherweise hatten sie nur Bilder auf dem Computer, alles andere war Cloud-synchronisiert, wie z. B. E-Mails), also habe ich es jetzt ein übergeordneter Ordner mit 208 Unterordnern aller PNG- und JPG-Dateien des alten Laufwerks. Offensichtlich werden viele entweder "Betriebssystem- und Anwendungsbilder" (Symbolleisten, Beispielbilder, Miniaturansichten, Systemcaches) und einige "Familienfotos" sein.

Wenn ich einen Weg finden kann, alle unterhalb einer bestimmten Größe zu finden (vorzugsweise 300 Pixel breit), sollte das Sortieren des Rests * einfach sein.

Wie kann ich iPhoto oder Spotlight oder etwas verwenden, um dies automatisch zu tun? Ich bin auch offen für Skripte, die einfach zu installierende (vielleicht brauen?) Bibliotheken verwenden, wenn auf eine Art Skript verwiesen werden kann.

* berühmte letzte Worte

Antworten (2)

Dazu können Sie das Terminal verwenden. Der folgende Befehl sollte funktionieren:

find /path/to/the/folder \
  -name "*.jpg" \
  -exec bash -c "sips -g pixelHeight -g pixelWidth {} | grep -E ' [12]?[0-9]{0,2}$' >/dev/null" \;\
  -print 

Dieser Befehl findet alle JPEG-Dateien /path/to/the/folder, die eine Breite oder Höhe zwischen 1 und 299 Pixel haben.

Ersetzen Sie /path/to/the/folderdurch den tatsächlichen Pfad zu Ihrem Ordner.

Sie können "*.jpg"zu wechseln, "*.gif"um stattdessen GIF-Dateien zu finden.

Sie können ändern [12]?[0-9]{0,2}, um die Größe der Bilder zu ändern, die Sie suchen möchten. Um beispielsweise Bilder zu finden, die kleiner als 500 Pixel sind, verwenden Sie[1234]?[0-9]{0,2}

Wenn Sie überprüfen möchten, welche Bilder dieser Befehl findet, verwenden Sie:

find /path/to/the/folder \
  -name "*.jpg" \
  -exec bash -c "sips -g pixelHeight -g pixelWidth {} | grep -E ' [12]?[0-9]{0,2}$' >/dev/null" \; \
  -exec mv {} /path/to/some/other/folder \; 

Ersetzen Sie path/to/some/other/folderdurch den Ordner, in den Sie die Dateien verschieben möchten, und dieser Befehl verschiebt die dort gefundenen Dateien.


Die Funktionsweise ist wie folgt:

Der sipsBefehl ist das skriptfähige Bildverarbeitungssystem . Der Terminalbefehl sips -g pixelHeight -g pixelWidth some.jpggibt die Breite und Höhe der JPEG-Datei aus.

Der findBefehl findet erwartungsgemäß Dateien. -execübergeben an find weist an, findden angegebenen Befehl auszuführen und nur Dateien zurückzugeben, für die der Befehl ein erfolgreiches Ergebnis zurückgibt.

Der Befehl bash -c "sips -g pixelHeight -g pixelWidth {} | grep -E ' [12]?[0-9]{0,2}$'ruft eine Shell auf, wird ausgeführt sips, um die Bildgröße abzurufen, und führt dann aus grep, das Text durchsucht und grepnach entweder a 1oder a 2gefolgt von null bis zwei Ziffern ( 0bis 9) sucht. Dies ist ein regulärer Ausdruck , der die Zahlen (Strings) 1durchpasst299

In Aperture können Sie dies tun. Und mehr!

Schritt 1

  1. Importieren Sie alle Dateien in Aperture.
  2. Verwenden Sie die Listenansicht.
  3. Klicken Sie auf ein Bildgrößenkriterium, um nach diesem Kriterium zu sortieren. Hinweis pixel dimensionist wahrscheinlich die beste Methode.

  4. Wählen Sie alle Dateien unterhalb Ihrer Mindestgröße aus.

  5. Löschen

Nun zu Schritt 2, vorausgesetzt, es handelt sich um Familienfotos.

  1. Schalten Sie die Gesichtserkennung in Aperture ein und weisen Sie allen erkennbaren Gesichtern Namen zu.
  2. Warten Sie, bis die Bibliothek verarbeitet wurde. Dies kann je nach Anzahl der Dateien eine Weile dauern.
  3. Jetzt können Sie nach Gesichtern sortieren. (vielleicht ein intelligentes Album für jedes Gesicht erstellen)
  4. Wählen Sie alle Fotos aus, die ein bestimmtes Gesicht enthalten.
  5. Metadaten stapelweise ändern ( shift+ cmd+ b), für jedes Gesicht ein passendes Schlüsselwort hinzufügen.

Jetzt können Sie Ihre Dateien in geeignete Ordner exportieren, je nachdem, wer sich in jedem Ordner befindet. Plus einen Ordner mit Dateien, in denen sich niemand befindet.