¿Cómo cambio por lotes la información de la fecha de captura en los datos EXIF?


30

Yo uso F-Spot para administrar mis imágenes. Para un conjunto de imágenes, las fechas de alguna manera se confundieron y todas están marcadas como 1 de septiembre de 2007. Me gustaría cambiar la información de la fecha tomada a una fecha diferente. ¿Cómo puedo hacer esto?

Respuestas:


25

jhead es capaz de hacer esto.

Supongamos que sabe que se tomó una determinada imagen, 2017-04-19 16:20pero la fecha actual se muestra como 2007-09-01 00:15, puede ajustar todas las jpgimágenes de una carpeta a la hora correcta haciendo:

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

Aquí hay un extracto del manual:

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

Una opción aún más poderosa es ExifTool .


Recientemente usé jhead para corregir y sincronizar los sellos de fecha / hora en cientos de imágenes de unas vacaciones familiares donde tres cámaras tenían los datos y la hora configurados incorrectamente. Fácil de usar y bastante útil.
Will M

Jhead no parece admitir tipos de archivos RAW, pero ExifTool sí (por ejemplo, Canon CR2, Nikon NEF, Sony ARW). Es bueno saberlo, para aquellos de nosotros que filmamos solo en RAW o RAW y JPEG.
Samir

¿Es compatible con Windows 10?
XPMai

@XPMai todavía funciona con Windows 10: terminé usando -ds para mis propósitos.
alexander7567


3

exiv2 es una herramienta de línea de comandos para manipular datos exif. Los formatos de imagen admitidos son JPEG, Canon CRW y Canon THM. PNG es de solo lectura.

Si desea establecer la fecha del archivo en la fecha exif, puede usar exiv2 con la siguiente opción.

-t Establezca la marca de tiempo del archivo de acuerdo con la marca de tiempo de Exif create además de renombrar el archivo (anula -k). Esta opción solo se usa con la acción 'cambiar nombre'.


¡Gracias! exiv2 es fácil de usar y rápido. -Tpermite establecer la fecha y hora del archivo sin cambiar el nombre del archivo :)
orzechow


2

Esto es lo que necesitaba

Para agregar desplazamiento constante a la fecha anterior

exiv2 ad -a -3:17 *.JPG

Cambiar el nombre a %Y%m%d_%H%M%S

exiv2 mv *.JPG

Otros formatos y opciones se especifican en las páginas man .


1

Puedes probar esta herramienta gratuita: Exifer .


1
@RandolphWest Por favor, solo deje comentarios que vinculen esto si realmente tienen sentido. Si bien esta respuesta no es perfecta , todo lo demás se puede determinar fácilmente haciendo clic en el enlace. Todo lo demás que podría incluirse aquí no ayudará si la página vinculada cambia de manera significativa, porque entonces el software ya no estará disponible para descargar. De hecho, incluir demasiados detalles (como una lista completa de características) solo significa que la respuesta queda obsoleta rápidamente si cambia el software vinculado.
Daniel Beck

@DanielBeck El hecho de que el enlace en la respuesta ya no conduzca a donde debería, es el ejemplo perfecto de por qué las respuestas de solo enlace son una mierda.
Rafael

@Raphael Vuelva a leer mi comentario comenzando con la tercera oración. Nada de lo que se pueda incluir aquí podría solucionar esta respuesta.
Daniel Beck

1

Utilizo el siguiente script para dar a las imágenes algunas fechas sucesivas. Espero eso ayude. Espera que un directorio con las imágenes se redacte como argumento 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 y Aperture tienen una opción de cambio de hora, por lo general, cuando estás en una nueva zona horaria o el reloj no funciona. Puede dejar los archivos sin editar (solo actualizando la base de datos de la aplicación) o editar los archivos. Claramente, F-Spot necesita tomar prestado esto.


0

Exiftool: lento en la línea de comando. (Está escrito en Perl, así que saca tus propias conclusiones allí).

Exifer crea una etiqueta vacía o dos en los archivos, y no solo en el bloque EXIF. También eliminará algunas etiquetas escritas por otras herramientas. Como no lo he usado en más de un año, no puedo ser específico sobre cuáles.

El material de FastStone, imx, es demasiado lento para mantenerse instalado durante más de un día o dos.

Mi voto es por Hr. Sugerencia de Weinzerl: Exiv2.

BZT


0

Picasa 3 , una herramienta gratuita de administración de fotos de Google, lo hará y es agradable y rápido.

En Picasa, seleccione el menú Ver> Propiedades para mostrar el panel Propiedades.

Seleccione la carpeta que contiene las fotos y aparecerán como una colección de miniaturas.

Seleccione las miniaturas que desea actualizar. Para decidir qué actualizar como un lote, puede configurarlos a todos en la misma fecha y hora nueva o puede cambiar el primero y todo el resto se desplazará en el tiempo en la misma cantidad.

En el panel Propiedades, haga clic con el botón derecho en el campo Fecha de la cámara y luego seleccione Ajustar fecha y hora ... en el menú contextual. Se abrirá el cuadro de diálogo Ajustar fecha de foto que muestra la fecha actual de la cámara para la primera foto.

Edite la fecha y hora de la cámara según sea necesario. Si solo quiere cambiar am a pm, o viceversa, simplemente seleccione la parte "am" de la hora y escriba "a" o "p" según corresponda. No es necesario escribir todo el asunto "am" o "pm".

Hay dos opciones, si seleccionó más de una miniatura para actualizar: "Ajustar todas las fechas de las fotos en la misma cantidad" o "Establecer todas las fotos en la misma fecha y hora". Elija lo que sea apropiado. Luego haga clic en Aceptar.

Se actualizarán las fechas EXIF ​​de todas las fotos seleccionadas.


Ver respuesta anterior de @ user28515 que también sugiere Picasa; Lamentablemente ya no está disponible.
JohnC

Aunque Picasa ya no está siendo desarrollado por Google y han eliminado el instalador de su sitio web, aún es posible descargar la última versión, v3.9. Buscar en Google "picasa 3.9" le dará muchos éxitos. Si desconfía de la descarga desde un sitio aleatorio, la descarga oficial de Google todavía está disponible a través de Internet Archive Wayback Machine. Para más información ver aquí: sites.google.com/site/picasaresources/Home/Picasa-FAQ/picasa/…
SimonTewsi

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.