Come posso modificare in batch le informazioni sulla data di acquisizione nei dati EXIF?


30

Uso F-Spot per gestire le mie immagini. Per una serie di immagini, le date sono state in qualche modo incasinate e tutte sono contrassegnate come 1 settembre 2007. Vorrei cambiare le informazioni sulla data presa con una data diversa. Come posso fare questo?

Risposte:


25

jhead è in grado di farlo.

Supponiamo che tu sappia che è stata scattata una determinata foto 2017-04-19 16:20ma che la data corrente viene visualizzata come 2007-09-01 00:15, puoi regolare tutte le jpgimmagini in una cartella all'ora corretta facendo:

jhead -da2017:04:19/16:20-2007:09:01/00:15 *.jpg

Ecco un estratto dal manuale:

DATE / TIME MANIPULATION:
   -ft        Set file modification time to Exif time
   -dsft      Set Exif time to file modification time
   -n[format-string]
             Rename files according to date.  Uses exif date if present, file
             date otherwise.  If the optional format-string is not supplied,
             the format is mmdd-hhmmss.  If a format-string is given, it is
             is passed to the 'strftime' function for formatting
             In addition to strftime format codes:
             '%f' as part of the string will include the original file name
             '%i' will include a sequence number, starting from 1. You can
             You can specify '%03i' for example to get leading zeros.
             This feature is useful for ordering files from multiple digicams to
             sequence of taking.  Only renames files whose names are mostly
             numerical (as assigned by digicam)
             The '.jpg' is automatically added to the end of the name.  If the
             destination name already exists, a letter or digit is added to
             the end of the name to make it unique.
  -nf[format-string]
             Same as -n, but rename regardless of original name
  -a         (Windows only) Rename files with same name but different extension
             Use together with -n to rename .AVI files from exif in .THM files
             for example
  -ta<+|->h[:mm[:ss]]
             Adjust time by h:mm backwards or forwards.  Useful when having
             taken pictures with the wrong time set on the camera, such as when
             traveling across time zones or DST changes. Dates can be adjusted
             by offsetting by 24 hours or more.  For large date adjustments,
             use the -da option
  -da<date>-<date>
             Adjust date by large amounts.  This is used to fix photos from
             cameras where the date got set back to the default camera date
             by accident or battery removal.
             To deal with different months and years having different numbers of
             days, a simple date-month-year offset would result in unexpected
             results.  Instead, the difference is specified as desired date
             minus original date.  Date is specified as yyyy:mm:dd or as date
             and time in the format yyyy:mm:dd/hh:mm:ss
  -ts<time>  Set the Exif internal time to <time>.  <time> is in the format
             yyyy:mm:dd-hh:mm:ss
  -ds<date>  Set the Exif internal date.  <date> is in the format YYYY:MM:DD
             or YYYY:MM or YYYY

Un'opzione ancora più potente è ExifTool .


Recentemente utilizzato jhead per correggere e sincronizzare i timbri data / ora su centinaia di foto di una vacanza in famiglia in cui tre fotocamere avevano tutti i dati e l'ora impostati in modo errato. Facile da usare e abbastanza utile.
Will M

Jhead non sembra supportare i tipi di file RAW, ma ExifTool (es. Canon CR2, Nikon NEF, Sony ARW). Questo è buono a sapersi, per quelli di noi che girano solo in RAW o in entrambi RAW e JPEG.
Samir,

È compatibile con Windows 10?
XPMai

@XPMai Funziona ancora con Windows 10 - Ho finito per usare -ds per i miei scopi.
alexander7567,


3

exiv2 è uno strumento da riga di comando per manipolare i dati exif. I formati di immagine supportati sono JPEG, Canon CRW e Canon THM. PNG è di sola lettura.

Se si desidera impostare la data del file sulla data exif, è possibile utilizzare exiv2 con la seguente opzione.

-t Imposta il timestamp del file in base al timestamp di creazione di Exif oltre a rinominare il file (ignora -k). Questa opzione è utilizzata solo con l'azione 'rinomina'.


Grazie! exiv2 è facile da usare e veloce. -Tpermette di impostare il timestamp del file senza rinominare il file :)
orzechow


2

Ecco cosa mi serviva

Per aggiungere un offset costante alla vecchia data

exiv2 ad -a -3:17 *.JPG

Per rinominare in %Y%m%d_%H%M%S

exiv2 mv *.JPG

Altri formati e opzioni sono specificati nelle pagine man .


1

Potresti provare questo strumento gratuito: Exifer .


1
@RandolphWest Si prega di lasciare commenti solo link se hanno effettivamente senso. Sebbene questa risposta non sia perfetta , tutto il resto può essere facilmente determinato facendo clic sul collegamento. Tutto il resto che potrebbe essere incluso qui non sarà di aiuto se la pagina collegata cambia in modo significativo, perché il software non sarà più disponibile per il download. In effetti, includere troppi dettagli (come un elenco completo di funzioni) significa che la risposta diventa rapidamente obsoleta se il software collegato cambia.
Daniel Beck

@DanielBeck Il fatto che il collegamento nella risposta non porti più dove dovrebbe è l'esempio perfetto del perché le risposte solo al collegamento sono una schifezza.
Raffaello,

@Raphael Rileggi il mio commento a partire dalla terza frase. Nulla di ciò che potrebbe essere sottolineato qui sarebbe in grado di risolvere questa risposta.
Daniel Beck

1

Uso uno script seguente per dare alle immagini alcune date successive. Spero che sia d'aiuto. Si aspetta che una directory con le immagini venga ridimensionata come argomento i .escript directory_with_images

#!/bin/bash
HOUR=12
MINUTE=0
DATE=2004:06:20
for file in "$1"/*;
do 
    exiv2 -v -M"set  Exif.Image.DateTime $DATE $(printf %02d $HOUR):$(printf %02d $MINUTE):00" "$file"
    exiv2 -v -M"set  Exif.Photo.DateTimeDigitized $DATE $(printf %02d $HOUR):$(printf %02d $MINUTE):00" "$file"
    exiv2 -v -M"set  Exif.Photo.DateTimeOriginal $DATE $(printf %02d $HOUR):$(printf %02d $MINUTE):00" "$file"
    #sets file timestamp (i.e. filesystem metadata, not image metadata) as well
    exiv2 -v -T "$file"
    if [ $MINUTE = 59 ]; then
        HOUR=$((HOUR + 1))
        MINUTE=0
    else
        MINUTE=$((MINUTE + 1))
    fi
    # this would rename the file as well
    #new_path=`pwd`/new_filename$(printf %02d $HOUR)$(printf %02d $MINUTE).jpg
    #cp "$file" "$new_path"
done

0

iPhoto e Aperture hanno entrambi un'opzione di time shift, per quando di solito ti trovi in ​​un nuovo fuso orario o quando l'orologio è sbagliato. Può lasciare i file inediti (aggiornando solo il db dell'App) o modificare i file. Chiaramente F-Spot deve prendere in prestito questo.


0

Exiftool: lento sulla riga di comando. (È scritto in Perl, quindi trai le tue conclusioni.)

Exifer crea un tag vuoto o due nei file e non solo nel blocco EXIF. Rimuoverà anche alcuni tag scritti da altri strumenti. Dato che non lo uso da più di un anno, non posso essere specifico su quali.

Le cose di FastStone, imx, sono troppo lente per essere installate per più di un giorno o due.

Il mio voto è per Hr. Il suggerimento di Weinzerl: Exiv2.

BZT


0

Picasa 3 , uno strumento gratuito di gestione delle foto di Google, farà questo ed è bello e veloce.

In Picasa seleziona il menu Visualizza> Proprietà per visualizzare il riquadro Proprietà.

Seleziona la cartella che contiene le foto e verranno visualizzate come una raccolta di miniature.

Seleziona le anteprime che desideri aggiornare. Per decidere quale aggiornare come batch, è possibile impostarli tutti sulla stessa nuova data-ora oppure è possibile modificare il primo e tutto il resto verrà spostato in base allo stesso importo.

Nel riquadro Proprietà fai clic con il pulsante destro del mouse sul campo Data telecamera, quindi seleziona Regola data e ora ... dal menu di scelta rapida. Si aprirà la finestra di dialogo Regola data foto che mostra la data corrente della fotocamera per la prima foto.

Modificare la data e l'ora della telecamera come richiesto. Se vuoi solo cambiare da am a pm, o viceversa, seleziona la parte "am" del tempo e digita "a" o "p" come appropriato. Non c'è bisogno di digitare l'intera cosa "am" o "pm".

Ci sono due opzioni, se hai selezionato più di una miniatura per l'aggiornamento: "Regola tutte le date delle foto dello stesso importo" o "Imposta tutte le foto con la stessa data e ora". Scegli quello che è appropriato. Quindi fare clic su OK.

Le date EXIF ​​di tutte le foto selezionate verranno aggiornate.


Vedi la risposta precedente di @utente28515 che suggerisce anche Picasa; purtroppo non è più disponibile.
Giovanni

Sebbene Picasa non sia più sviluppato da Google e abbiano rimosso il programma di installazione dal loro sito Web, è comunque possibile scaricare l'ultima versione, v3.9. Googling "download picasa 3.9" darà molti successi. Se sei sospettoso di scaricare da un sito casuale, il download ufficiale di Google è ancora disponibile tramite Internet Archive Wayback Machine. Per maggiori informazioni, consultare qui: sites.google.com/site/picasaresources/Home/Picasa-FAQ/picasa/…
SimonTewsi,

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.