Voglio specificare una directory e fare in modo che il software trovi tutte le foto nella directory e nelle sue sottodirectory, e se contengono data / ora EXIF, imposta il timestamp del loro filesystem in modo che corrisponda allEXIF.

Commenti

Answer

Questo è il contrario di Esiste un software che imposterà le date EXIF in base alla data di modifica del file ‘? e sono sicuro che verranno applicati tutti i programmi elencati.

jhead

Di questi, per questo compito molto semplice, jhead è il mio suggerimento. Ad esempio, il comando

jhead -ft *.jpg 

imposta una serie di file in modo che il timestamp del file corrisponda a EXIF.

jhead con find, per passare attraverso le sottodirectory

Per eseguire la ricorsione nelle sottodirectory, puoi combinarla con il comando find disponibile su Linux / Unix / Mac (o Cygwin per Windows):

find . -name "*.jpg" -exec jhead -ft {} + 

Oppure per trovare uno qualsiasi di *.JPG *.JPEG *.jpg *.jpeg ... puoi anche provare

find . -iname "*.jp*g" -exec jhead -ft {} + 

Puoi anche usare find solo per mostrare tutti i file che sarebbero. .. trovato, senza eseguire nessun altro comando (come jhead):

find . -iname "*.jp*g" 

Altri strumenti

Altre utilità come ExifTool o Exiv2 sono molte più capace, ma al prezzo della complessità. Non riesco mai a ricordare improvvisamente le opzioni giuste per fare qualsiasi cosa con quelle e devo guardare la documentazione ogni volta, ma jhead -ft è facile da ricordare con lo mnemonico “fix time”.

ExifTool

Solo per completezza, però, ho guardato la documentazione e con ExifTool , procedi così:

exiftool -r "-DateTimeOriginal>FileModifyDate" directoryname 

(rimuovi -r se non “Non voglio la ricorsione e, se lo fai, puoi anche fornire un elenco di file o un carattere jolly invece di directoryname.) E fai attenzione a queste virgolette, se” stai eseguendo questo su Windows, vuoi " invece di ".

Exiv2

Con Exiv2 :

exiv2 -T rename *.jpg 

Fai attenzione che con -t (o senza -T) Exiv2 rinominerà il file con un nuovo nome in base al timestamp, che può creare confusione. Exiv2 inoltre non esegue la ricorsione.

Commenti

  • Hai ragione, questo è lopposto ma infinitamente più utile 🙂
  • jhead è molto utile per questo – E per molte altre manipolazioni di file jpg. Fai attenzione quando lo usi: è uno strumento estremamente potente che può provocare una certa quantità di caos se usato in modo improprio. Consiglio di usarlo in un file batch in modo da fare sempre ciò che intendi e testare prima il risultato su un file di test impostato.
  • +1 ma mi sono aggiudicato la risposta 😉 Così altri in futuro può trovare un modo per fare esattamente quello che ho chiesto …
  • @olibre Sì, funzionerà su Linux / Unix o Mac.
  • Ho notato alcuni browser di immagini presenti (diaporama ) immagini solo nellordine del nome del file (non nellora di modifica del file). Infine utilizzo il timestamp EXIF per impostare lora del file E per aggiungere il prefisso al nome del file. Uso il comando find -name '[0-9][0-9]*' -o -iname '*.jp*g' -type f -exec jhead -ft -n%Y%m%d_%H%M%S_%f {} +. Spiegazioni: -name '[0-9][0-9]*' per evitare di rinominare nuovamente i file che hanno già un prefisso di data ('[0-9][0-9] per tenere conto di anni e mesi). -iname '*.jp*g' può essere ignorato perché jhead elabora solo file supportati (solo file JPEG). %f per mantenere il nome file originale.

Risposta

Irfanview e jhead faranno entrambi quello che vuoi.
Entrambi gratuiti.
Link a entrambi di seguito.
jhead è gestito dalla riga di comando o può essere richiamato da altri processi.
La versione di Irfanview può essere richiamata da una riga di comando o internamente in batch o file per file.

Lesempio di seguito per Irfanview mostra come copiare in entrambe le direzioni:


Irfanview

Consente modifiche alla GUI o alla riga di comando del batch o il trasferimento di data / ora per file da EXIF alle specifiche del file o viceversa (senza altri file cambia se lo si desidera).

Fonte: Libero da www.irfanview.com

Questo è MOLTO più facile e veloce in pratica dopo pochi utilizzi rispetto alle istruzioni sottostanti lo fanno apparire. ad es.
Per convertire la data / ora di un singolo file in valori EXIF sono necessari
Maiusc-J, Alt-F, Invio.
Capire perché le prime volte richiedono più tempo.

Per fare questo per un gruppo di file SUONO complessi da imparare –
Richiede: T, Ctrl-A, Alt-F, J, Invio, (Alt-F), Invio
(Oppure: T, Ctrl- A, Shift-J, Enter) (fornisce meno opzioni)
MA in realtà è quasi del tutto intuitivo dopo un po di utilizzo: i menu ti guidano inizialmente fino a quando non si forma il percorso del cervello.

GUI, per file

 Options, JPG lossless rotation (Shift-J) Select "Apply original EXIF date/time to new file" Consider also selecting other options 

inserisci qui la descrizione dellimmagine

GUI, uno o più file ( tramite visualizzazione Miniatura)

AVVISO: ( Aggiunto il 2020!)
È stato “sottolineato che la selezione delle opzioni sbagliate può ottenere un risultato indesiderato, ad es. Tutti i file di destinazione impostati su una singola data selezionata E tempo. Farlo correttamente non è “troppo difficile”, ma GUARDA le varie caselle di controllo e decidi quale si adatta a ciò che desideri fare.

Open Thumbnails view ("File, Thumbnails" or "T" from Window view Select images to change EXIF data of usually all in folder -> Ctrl-A Then: File, "JPG lossless operations" (1) Change EXIF date/time "Change EXIF date/time" Options are offered to set Date/time to specific setting or to move all times back/forwards by selected DHMS amount calculator provided to check result is as desired. (2) Transfer EXIF date / time to file saved date time "Lossless rotation with selected files" [Shift-J] then, as for single file version above Select "Apply original EXIF date/time to new file" 

inserisci qui la descrizione dellimmagine

Dalla riga di comando – questa è una “rotazione” senza NESSUNA azione tranne che per copiare data / ora da EXIF a data e ora del file. Se lo si desidera, è possibile ottenere anche lopposto. :

  • i_view32.exe file_spec \ *. jpg / jpg_rotate = (0,0,0,1,0,0,0,0)

  • Per copiare data / ora in direzione opposta ((filespec to EXIF)
    usa come sopra con (0,0,1,0,0,0,0,0)


jhead

farà qualsiasi cosa tu può immaginare con i file jpeg

Fonte: Libero da http://www.sentex.net/~mwandel/jhead/

I usa un file batch come di seguito. Sono possibili altre opzioni:

  • jhead -ft % 1 .jpg

Dicono: Cose che jhead può modificare in un file jpeg exif

  • Immagini in alto a destra in base al tag di rotazione utilizzando jpegtran
    Imposta o modifica relativa timestamp exif interni
    Correggi gli offset di data / ora in grandi batch di immagini
    Rinomina o data i file in base al timestamp exif
    Trasferisci le intestazioni exif tra le immagini
    Sostituisci le miniature nelle intestazioni Exif
    Modifica i commenti jpeg (ma non i commenti Exif)
    Elimina le sezioni exif o di commento dalle immagini jpeg
    Crea una nuova intestazione exif minima contenente data e miniatura

_________________________

Nota: agosto 2016: ” Utente anonimo “ha suggerito correttamente che una conversione suggerita non funzionava come ho detto. Ho “ampiamente aggiunto allarea interessata.

Commenti

  • Agosto 2016: ” Utente anonimo ” ha suggerito correttamente che una conversione suggerita non ha funzionato come ho detto. ‘ ho ampiamente aggiunto allarea interessata.
  • E i file raw?
  • @MichaelClark I ‘ sono contento che tu abbia posto questa domanda :-). Noto che sembra che tutti ci siamo rivolti a JPG file e non RAW. ‘ immagino che saresti una delle persone più propense a chiedere a re come farlo con i file RAW :-).
  • ATTENZIONE: il passaggio 1 in ” GUI, uno o più file (tramite visualizzazione Miniatura) ” è fuorviante: imposta tutti i file selezionati su la stessa data e ora (che non è ciò che è stato chiesto nella domanda). Solo il passaggio 2 porta al risultato richiesto.
  • @Christoph Grazie. Ho aggiunto una nota di avvertenza generale allinizio di quella sezione.

Risposta

Solo un altro strumento EXIF da riga di comando che può cambiare la data dellultima modifica dei file per far corrispondere lora in cui è stata scattata la foto, in base al metada EXIF nel file immagine JPEG:

 exiv2 -T rename somedir/foo*.jpg 

Nessun problema, largomento del comando rename va bene lì e non fa male.
È solo che lazione di rinomina del file viene utilizzata in modo improprio per creare solo leffetto collaterale della modifica del timestamp.

Risposta

Anche se non consiglio “di fare affidamento sulla data / ora del file quando si tratta delle tue immagini puoi utilizzare uno strumento gratuito chiamato EXIF Date Changer per impostare in batch le date dei file di tutte le tue immagini JPG.Limpostazione predefinita imposterà sia la data di creazione che la data di modifica della data del file sulla foto scattata.

Il motivo per cui non lo consiglio è che la data del file è facilmente aggiornabile. Se modifichi limmagine, la data modificata viene aggiornata. Se copi limmagine ottiene una nuova data.

Una soluzione molto migliore è rinominare i file per includere la data / ora nel nome del file stesso. Ciò consente comunque un facile ordinamento e funziona bene con le immagini archiviate su iPhone / Dropbox.

EXIF Date Changer - Imposta le date dei file alla data di acquisizione

Risposta

Dai unocchiata al mio nuovo software gratuito “Photo Date Organizer”: http://photodateorganizer.sourceforge.net/

inserisci qui la descrizione dellimmagine

Commenti

  • Dalla pagina SourceForge: ” Offerto da: killdaclick “. Pubblicizzare i tuoi prodotti non è ‘ t vietato qui, ma dovresti chiarire qual è la tua affiliazione.
  • @PhilipKendall done 🙂

Risposta

FastStone Image Viewer può farlo (versione 4.9 utilizzata): basta selezionare i file nel riquadro delle miniature, fare clic con il pulsante destro del mouse su di essi , seleziona “Strumenti”> “Modifica timestamp”, quindi puoi utilizzare i dati EXIF (con o senza modifiche) o utilizzare data / ora manuali fissi completamente personalizzati.

Commenti

  • Wow! Non lo sapevo. Uso il loro strumento di cattura dello schermo da anni e non ho trovato niente di meglio. Puoi scaricare lultima versione gratuita qui ; Su ‘ non ho bisogno di nessuna delle funzioni a pagamento. Ho anche utilizzato il loro visualizzatore in passato, ma non sapevo che potesse farlo.

Risposta

Advance Renamer è il miglior software user friendly che è molto semplice.

  1. Trascina tutte le foto su AR (Advance Renamer)

  2. Fai clic su (In alto a sinistra) Aggiungi metodo -> Nuovo nome

  3. Fai clic su una delle immagini in basso al centro, vedrai un pulsante ExifTool che mostra tutti i metadati, fai clic su un attributo e otterrai il tag In questo caso è <ExifTool:DateTimeOriginal>

  4. Copia questo e incollalo nel Nuovo nome casella di testo Puoi aggiungere qualsiasi cosa prima o dopo come IMG_<ExifTool:DateTimeOriginal>, DSC_<ExifTool:DateTimeOriginal> ecc.

  5. Fai clic su Avvia batch (Inizio Giusto) Questo rinominerà tutti i tuoi file file con la data Ad es. 2017_12_01 19_10_12 È sempre utile avere la data originale nel nome del file perché gli attributi potrebbero andare persi ma i nomi dei file non verranno salvati.

  6. Trascina di nuovo tutto rinominato file su AR
  7. Fai clic su Nuovo metodo -> Timestamp
  8. Seleziona tutto 3 caselle di controllo Crea, Modifica, Accesso (Accessed a volte potrebbe non funzionare, basta deselezionarlo se accade)
  9. Seleziona FileName Pattern e incolla <Year>_<Month>_<Day> <Hour>_<Min>_<Sec>
  10. Avvia batch.
  11. Sei bravo. Missione compiuta

Risposta

Avevo completato pasticciare con le date dei file nella mia libreria, ma non era soddisfatto di nessuno degli strumenti. Alcuni non supportano la ricorsione delle directory, alcuni non possono modificare alcuni timestamp specifici di Windows, altri sono difficili da usare.

Ho creato un nuovo strumento da riga di comando per singola attività: elabora ricorsivamente tutto file nella directory specificata per estrarre la data EXIF e impostarla su tale data.

Lo strumento è multipiattaforma.

Vedere ExifDate2FS

Risposta

Questa è una vecchia domanda e sembra che ci siano alcuni suggerimenti che dovrebbero funzionare bene, ma quello a cui sono arrivato per risolvere un problema di ordinamento dei file dopo un aggiornamento del telefono Android è stato questo.

  • Apri Windows (per la prima volta da secoli)
  • Installa ExtFS o qualcosa che può leggere le partizioni ext4
  • Copia le foto sul disco rigido da Micro SD
  • Usa Attribute Changer ( https://www.petges.lu/home/ ) per impostare le date di creazione / modifica alla data EXIF
  • Ricopia la carta nel telefono
  • Copia le foto sul telefono tramite MTP

Forse questo sarà utile a qualcuno.

Risposta

Mi sono iscritto a StackExchange solo quindi potrei ringraziare lOP per aver pubblicato questo e aggiungere la mia soluzione alternativa d bc alcuni dei comandi qui non hanno funzionato per me. Scusa, sto per parlare del mio processo.

Sono nel bel mezzo di uno sforzo “Puliamo finalmente i miei archivi fotografici” poiché la lotta è reale, soprattutto perché iCloud e Google Foto li prendono dal tuo dispositivo e la gestione dei file ha poco da fare fatelo in questi giorni (e in passato, buoni servizi e prodotti erano un po ribelli e imponevano una strana casualità e duplicazione che richiedeva un vero sforzo per essere superata.)

Ho usato Flickr per togliere le foto la mia macchina quando il mio disco era troppo piccolo per contenerli tutti. Ho usato Google Foto su un account dal 2006, quindi avevo una serie di duplicati casuali e immagini uniche lassù, attraverso le sue diverse incarnazioni di caricamento.

Quando la fotografia delliPhone ha davvero iniziato a funzionare, mi collegavo tramite USB, le importavo nel mio Dropbox che le avrebbe rinominate con un timbro data e ora 🙌🏻, le mettevo in una cartella anno / mese con un po di cura per ordinare gli screenshot e le foto degli acquisti e Google Foto ha guardato quella cartella di archivio per caricarli. Ha funzionato bene fino a quando iCloud non ha sequestrato le foto dal mio iPhone e ottenerle ha dimostrato di richiedere il proprio flusso di lavoro.

Perché la duplicazione è sempre stata un GRANDE problema, uno strumento chiamato Gemini II finalmente ha reso possibile questo progetto di pulizia e archiviazione.

Per consolidare il mio archivio su un disco esterno, ho deciso di scarica tutte le foto tranne le più recenti da iCloud (utilizzando Image Capture e una USB sul mio telefono: non affidabile al 100%), Flickr e Google e ripulisci tutto.

È così che ho scoperto Dati Exif: alcune foto (solo alcune) non erano “file flat” (vedi immagine sotto) e mostravano i loro metadati nel Finder. La maggior parte ha solo la data di creazione e modifica visibile. Wh in li ho scaricati da Flickr (e alcuni da Google) salvati come se fossero stati creati e modificati il giorno in cui li ho scaricati. Non bene. Alcuni avevano dati EXIF visibili, ma molti / la maggior parte sembravano piatti. Stavo cancellando i duplicati bc avevano il timestamp sbagliato (se erano della stessa dimensione o più piccoli, cioè). La scoperta dei dati Exif e del timestamp mi ha portato qui.

Il passaggio di Dropbox è sempre stato importante per me perché IMG _ #### o DSC #### è sempre stato inutile. Qualcuno mi ha chiesto perché non ho saltato il passaggio di Dropbox e non ho usato Automater per rinominarli. Automater non ha le funzionalità che posso vedere, ma grazie a Jhead finalmente funzionerà.

Ho capito come installare prima jhead e poi eseguire jhead attraverso una directory in modo ricorsivo e il più delle volte, i dati EXIF erano ancora nei file delle foto. Risultato: jhead ha cambiato il date dei file a ciò che era nei dati EXIF. Nessuna delusione.

Primo, per utenti Mac: segui le istruzioni di installazione untar dalla riga di comando (Terminale). Se non li trovi per jhead, trova le istruzioni generali untar e sub nella posizione del tarball jhead. Questo ha funzionato, perché il download e il tentativo di installazione dalla riga di comando certamente non funzionavano. Avanti: assicurati di installare Xcode dallApp Store. Tutti gli sviluppatori Apple hanno bisogno di questo programma e fa funzionare i comandi che altrimenti non “t. È necessario per” make “e” install make “.

Uso dello strumento jhead: non ho familiarità con la lettura di istruzioni e manuali di Unix (man jhead) ma ho abbastanza familiarità con la CLI che se qualcuno ha documentato qualcosa da qualche parte, provo le sue opzioni finché qualcosa non funziona.

Questo non ha funzionato per me:

[directory che voglio]> trova -name “* .jpg” -exec jhead -ft {} +

Altrove su StackExchange ho trovato una diversa stringa di ricerca ricorsiva che ho dovuto lavorare per trovare (aveva unopzione -print che non sembrava necessaria):

 find . | grep ".*[.]jpg" 

ma se avessi aggiunto il comando jhead, avrei ricevuto un errore che diceva che non ha capito “grep”

Decostruire i termini di ricerca aggiungendo e togliendo opzioni / variabili di ricerca e cercando di ottenere jhead a essere parte di quel comando non funzionava fino a quando non ho provato una vecchia convenzione:

jhead -ft ./*/*.jpg 

Questo funzionava attraverso unintera directory long-ish e non “t sputano molti errori come “non contiene timestamp EXIF” o “Errore: ora” 0000: 00: 00 00:00:00 “: impossibile con vert allora di Unix “

Quando ho guardato, rimaneva solo una minoranza dei timestamp di ieri scaricati. Quindi lho testato sulle altre 10 cartelle di file che avevo nella mia cartella “duplicati”. Le cose datate 2020 sono tornate al 2004, 2013, 2012. Ho imparato che se si esegue due volte la stessa directory, non si ottiene loutput una seconda volta.

Quindi ho usato jhead per rinominare i miei file secondo la convenzione del timestamp. Ha funzionato come un incantesimo; se il nome del file originale conteneva un significato per te e desideri mantenerlo, assicurati di includerlo nella stringa del timbro della data scelta:

" "%f … *.jpg 

Ora trovo frustrante che Finder non sia coerente nel visualizzare queste informazioni quando potrebbe. Di seguito è riportato un esempio di un file per cui Finder mostra informazioni complete (non comune). Immagine delle informazioni del Finder di Mac OS dei dati EXIF delle foto, completa

Commenti

  • Ciao, benvenuto in Photo-SE. Questi scambi di stack sono siti Q & A, in cui ogni risposta tenta di rispondere direttamente alla domanda. Non sono come i forum di discussione più tipici, che sono spesso filettati, ei post sono risposte reciproche tanto quanto (spesso più) al post originale. Come scritto, la tua risposta è molto orientata alla discussione e alla narrativa sulle tue esigenze e sul processo di uno strumento di ridenominazione, piuttosto che concentrarsi sulla risposta alla domanda come chiesto.
  • Su un punto tecnico dettaglio, il motivo per cui find -name '*.jpg' -exec jhead -ft {} + non ‘ ha funzionato è perché find necessita di un percorso per la ricerca prima che vengano fornite espressioni come -name <...>. Ho ‘ aggiornato la risposta accettata / con il voto più alto per correggere lerrore. Prova questo invece: find . -name '*.jpg' -exec jhead -ft {} +
  • Cosa ti fa pensare che non ‘ abbia avviato il comando dallinterno del percorso di la directory che volevo? Se ‘ non ha funzionato, ‘ non ha funzionato. Ho trovato la mia soluzione. Mi ha reso la vita più facile. Così lho pubblicato e lho passato. Se esempi del mondo reale che spiegano cose a non programmatori non sono ‘ benvenuti e vengo rimproverato per non essere abbastanza tecnico, ho vinto ‘ t commenta di nuovo. Bravo.
  • Se lhai digitato come hai scritto, non ‘ in alcun modo il comando funzionerebbe . Cioè, errore di input. Quello che ho suggerito (find . -name '*.jpg' -exec jhead -ft {} +) è quello che avresti bisogno di usare se volessi eseguirlo dal percorso della directory che desideri. Il punto come percorso significa ” directory locale “. find richiede un percorso di ricerca iniziale. Questo è disponibile dalle find ‘ manpage.
  • Per quanto riguarda le spiegazioni ai non programmatori: le buone risposte sono assolutamente desiderato nei siti Stack Exchange. A condizione , tuttavia, che siano risposte alla domanda. Dedica un momento alla visione del breve Tour del sito per avere unidea di come i siti Stack Exchange sono diversi dai forum Internet orientati alla discussione.

Risposta

Lho suggerito allautore di PhotoRenamer, che ha risposto …

PhotoRenamer 3.2 http://www.tgmdev.be/applications/photorenamer/photorenamer.php

Aggiungo un pulsante in la scheda “Opzioni” della barra multifunzione .. Da lì, puoi selezionare lopzione per aggiornare lo stato dellora del file ..

A proposito, per evitare luso della maschera, aggiungo anche un nuovo attributo maschera:% F. Se usi questa semplice maschera, il file viene rinominato … con il suo nome … Quindi non sei obbligato a rinominare il file per il quale desideri aggiornare gli attributi dellora del file …

Risposta

Laltro programma gratuito è Google Picasa: puoi facilmente modificare in gruppo data e ora per tutti le foto:

inserisci qui la descrizione dellimmagine

inserisci qui la descrizione dellimmagine

Bellarticolo a riguardo: Come modificare la data di una foto in Picasa in base allo scatto della foto

Commenti

  • Comè questa soluzione Lavorando ? LOP desidera modificare la data del file in modo che corrisponda alla data EXIF . Probabilmente non è quello che sta facendo Picasa.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *