Come ridimensionare in batch molte foto - ma mantenere intatto il timestamp?


2

Ho migliaia di foto in molte cartelle. Voglio ridimensionarli in batch ad esempio 3000px sulla dimensione più lunga e mantenere intatto il timestamp.

Ho usato lo strumento meravigliosamente semplice Phatch per ridimensionare tutti i file ma i timestamp originali dei file sono spariti e non c'è alcuna impostazione in Phatch per evitarlo. Quindi ora ho una cartella principale con tutti gli originali e un'altra cartella con i risultati di Phatch - per ogni evenienza.

  • Piattaforma: Linux (Ubuntu)
  • File di origine: 2000 file JPG in molte sottocartelle
  • Target: ridimensionato a 3000 px (a meno che non sia già più piccolo di quello),
    • ridimensionare i file in atto
    • o salva come copia usando la stessa struttura di cartelle
    • mantenere intatti i nomi dei file e i timestamp originali

Non sono abbastanza di una persona Linux (ancora) per sapere quali strumenti potrei usare (imagemagick? Mogrify?) E come, ma accetterò felicemente qualsiasi suggerimento!


touchsupporta i timestamp. Hai ancora i vecchi file, quindi hai il vecchio nome file con data assortita. È possibile scrivere uno script usando queste informazioni e toccare. (Ma ENOTENOUGHCOFFEE, quindi non sto scrivendo atm).
Hennes,

Hmm, mi sembra che il valore di una serata sia quello di programmare le mie mani non qualificate. Welp, è così che imparo!
Torben Gundtofte-Bruun,

Risposte:


3

Puoi fare qualcosa del genere, usando convert dal pacchetto imagemagick , inserendo nuovi file in / tmp / new o in una directory simile:

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

Se sei soddisfatto del risultato, spostali con:

rsync -a /tmp/new/ .
rm -fr /tmp/new

+1 per il file while read .... toccare -r "$ file" / tmp / new / "$ file". Dovrebbe funzionare anche con un altro programma, quindi convertire. (o con file già convertiti).
Hennes,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.