Wie kann ich die Größe vieler Fotos im Stapel ändern - aber den Zeitstempel beibehalten?

2

Ich habe Tausende von Fotos in vielen Ordnern. Ich möchte sie in der längsten Dimension stapelweise auf z. B. 3000px skalieren und den Zeitstempel intakt halten.

Ich habe das wunderbar einfache Tool Phatch verwendet, um die Größe aller Dateien zu ändern, aber die ursprünglichen Zeitstempel der Dateien sind weg und es gibt keine Einstellung in Phatch, um dies zu vermeiden. Ich habe jetzt einen Hauptordner mit allen Originalen und einen weiteren Ordner mit den Phatch-Ergebnissen - für den Fall, dass dies hilfreich ist.

  • Plattform: Linux (Ubuntu)
  • Quelldateien: 2000 JPG-Dateien in vielen Unterordnern
  • Ziel: Größe auf 3000px geändert (sofern nicht bereits kleiner),
    • Ändern Sie entweder die Größe der vorhandenen Dateien
    • oder als Kopie mit derselben Ordnerstruktur speichern
    • Behalten Sie die ursprünglichen Dateinamen und Zeitstempel bei

Ich bin (noch) nicht Linux-fähig genug, um zu wissen, welche Tools ich verwenden könnte (imagemagick? Mogrify?) Und wie, aber ich nehme gerne Hinweise an!

Torben Gundtofte-Bruun
quelle
touchUnterstützt Zeitstempel. Sie haben noch die alten Dateien, also den alten Dateinamen mit sortiertem Datum. Mit diesen Informationen können Sie ein Skript schreiben und berühren. (Aber ENOTENOUGHCOFFEE, also schreibe ich es nicht atm).
Hennes
Hmm, das klingt nach einem Abend, an dem ich meine ungelernten Hände verschlüsseln muss. Welp, so lerne ich!
Torben Gundtofte-Bruun,

Antworten:

3

Sie können so etwas tun, indem Sie vom Paket imagemagick konvertieren , neue Dateien in / tmp / new oder ein ähnliches Verzeichnis ablegen :

mkdir /tmp/new
find . -iname '*.jpg' |
while read file
do convert -resize '>3000x>3000' "$file" /tmp/new/"$file"
   touch -r "$file" /tmp/new/"$file"
done

Wenn Sie mit dem Ergebnis zufrieden sind, verschieben Sie sie mit:

rsync -a /tmp/new/ .
rm -fr /tmp/new
meuh
quelle
+1 für die Zeit, in der die Datei gelesen wurde. Berühren Sie -r "$ file" / tmp / new / "$ file". Das sollte dann auch mit einem anderen Programm klappen konvertieren. (oder mit bereits konvertierten Dateien).
Hennes