Exiv2

Exiv2 (página web oficial) es una utilidad para manipular los metadatos de una imagen pudiendo acceder a los metadatos de EXIF, IPTC y XMP de la imágenes.

NOTA: En OSX podemos instalarlo vía MacPorts.

Trucos

Renombrar fichero según la fecha de la foto

Si queremos renombrar imágenes con la fecha de la foto (sacado de los metadatos EXIF) al igual que hace por ejemplo Dropbox, podemos ejecutar este comando:

$ ls -1 *.JPG
DSC00350.JPG
DSC00351.JPG
DSC00352.JPG

$ exiv2 -r'%Y-%m-%d_%H.%M.%S_:basename:' rename $(ls *.jpg)

$ ls -1 *.JPG
2016-01-21_12.36.16_DSC00350.JPG
2016-01-21_12.36.36_DSC00351.JPG
2016-01-21_12.37.15_DSC00352.JPG

Podemos quitar "_:basename:" si no queremos mantener el nombre del fichero, aunque a mi me gusta para tener una referencia. También podemos jugar con el formato de la fecha y hora, añadiendo o quitando según nuestras necesidades.

Un formato y comando más simple sería:

$ ls -1 *.JPG
DSC00350.JPG
DSC00351.JPG
DSC00352.JPG

$ exiv2 -k -F rename *.JPG

$ ls -1 *.JPG
20160121_123616.JPG
20160121_123636.JPG
20160121_123715.JPG
Cambiar la fecha de una foto

Si queremos cambiar la fecha de una foto o añadirle le fecha en caso de que no tenga podemos usar el comando:

exiv2 -M"set Exif.Photo.DateTimeOriginal 2006:09:16 14:03:18" foto.jpg
Añadir la fecha de creación al EXIF de una foto

En algunas ocasiones podemos tener una foto sin información de EXIF o al menos NO la fecha o una incorrecta, con este mini script podemos poner la fecha de modificación, por lo que con un touch podemos cambiar la fecha que queramos en el EXIF:

#!/usr/bin/env bash

DEBUG=echo
DEBUG=

for jpg in *.jpg
do
    echo "* Procesando $jpg"
    # obtenemos la fecha del EXIF
    fecha=$(exiv2 $jpg | egrep timestamp | cut -d\  -f4-)
    if [ "$fecha" == "" ]
    then
        # obtenemos fecha de CREACION  del fichero
        # fecha=$(stat -f '%SB' -t '%Y:%m:%d %H:%M:%S' $jpg)
        # obtenemos fecha de MODIFICACION  del fichero
        fecha=$(date -r $jpg "+%Y:%m:%d %H:%M:%S")
        echo "  - obteniendo la fecha del sistema: $fecha"
        echo "  + añadiendo la fecha al EXIF..."
        $DEBUG exiv2 -M"set Exif.Photo.DateTimeOriginal $fecha" $jpg
    fi
    echo "  - fecha de la foto: ($fecha)"
done

Retro

Lugares

Redes

Sistemas

Varios