Como obter / editar os metadados EXIF ​​de várias imagens?

30

Encontrei um grande problema ontem à noite.

Peguei minha câmera digital antiga e comecei a usá-la sem definir a data e a hora atuais.

Todas as fotos clicadas agora têm data como 01/01/2009

Quero alterar a data e a hora (e outros meta-dados da imagem EXIF) de várias imagens.

Por favor, recomende algum software que possa processar várias imagens em um único clique / ir.

IM-JM
fonte

Respostas:

31

Como você já tem uma solução de GUI, pensei em mencionar que também existem várias maneiras de alterar dados EXIF ​​na linha de comando; duas ferramentas úteis são exiftoole jhead, que podem ser instaladas com este comando:

sudo apt-get install libimage-exiftool-perl jhead

Com essas duas ferramentas, você pode operar com vários arquivos de uma só vez, mas convém fazer backup de seus arquivos antes de começar a manipular os dados exif.

jhead

Para alterar os dados EXIF ​​de hora e data em vários arquivos 'em um único clique', você pode abrir o terminal e fazer cda pasta com as imagens e executar:

jhead -ts2012:10:29-10:28:03 *.jpg

A -tsopção permite especificar a data e a hora necessárias e gravá-las no cabeçalho exif de uma só vez: o formato especificado aqui é YYYY:MM:DD-HH:MM:SS.

Se você quiser alterar a data sem especificar a hora, use:

jhead -ds2012:10:29 *.jpg

Você também pode fazer apenas algumas fotos tiradas com uma câmera específica, se você especificou, por exemplo, -model "D70"mas essa opção deve vir primeiro no processamento e deve ser algo como "D70", "S100" e não "Nikon D70 " Veja a leitura exif de suas fotos para obter o número do modelo correto.

jhead -model "D70" -ts2012:10:29-10:28:03 *.jpg

Para mais informações, consulte man jhead.

exiftool

Este utilitário tem mais opções que o jhead e é muito abrangente, como observado no site oficial . Existe uma interface gráfica para o exiftool em desenvolvimento, mas ela está nos estágios iniciais no momento, mas parece promissora.

As opções de mudança de data e hora e quais formatos podem ser usados ​​são bastante extensos, conforme detalhado aqui neste pdf útil . Como no jhead , você pode decidir alterar a hora e a data, ou apenas a data. Este exemplo altera a data e a hora:

exiftool -AllDates="2012:03:14 12:25:00" *.jpg

O exemplo acima apenas define um valor específico para a data e hora das imagens; se você quiser mudar todos eles por um determinado índice de tempo, como os três anos seguintes, você pode usar:

exiftool -AllDates+="3:0:0 0" *.jpg

O recurso de deslocamento pode ser muito útil se, como aconteceu com você, todas as suas fotos forem marcadas de repente como 2009, mesmo tendo sido tiradas em 2012. Certifique-se de usar um sinal de mais ou menos antes dos iguais (como em -AllDates-=ou -AllDates+=), dependendo sobre o que você deseja alcançar ao atribuir o índice de tempo necessário ou os dados EXIF ​​resultantes não serão os esperados.

exiftoolvai criar um backup do original antes de editar os dados EXIF acrescentando originais no final do nome do arquivo.

exiftoolsuporta mais tipos de imagens do que os jheadque funcionam apenas para JPEGs.

Para mais informações, consulte man exiftool.

Pablo A
fonte
11
+1, Resposta excelente Mik. Isso é muito mais flexível do que apenas usar o Shotwell.
Tom Brossman
Eu me deparei com essa resposta porque estava procurando como adicionar dados EXIF ​​a imagens jpg que não possuíam em primeiro lugar. Por isso, descobri que precisava jhead -mkexif -ts<date>.
Ian
jhead foi ótimo de usar.
Harald
1. Observe que, infelizmente, o padrão EXIF não inclui informações de fuso horário . 2. Em vez de asterisco, você poderia usar a expansão cinta: DSCN{120..345}.jpg. 3. Para alterar o registro de data e hora do arquivo usando outro como uso de referênciatouch -r ~/path/reference.jpg *.jpg
Pablo A
21

Mudar a data e a hora é fácil em Shotwell. Selecione as fotos que deseja ajustar e vá para o menu como este:

menu shotwell

Selecione Fotos / Ajustar data e hora. Isso abre um menu como este:

ajuste de data e hora

Se todas as fotos estiverem na mesma quantidade, você poderá fazer todas de uma só vez. Se você usou mais de uma câmera e elas foram desativadas em quantidades diferentes, é necessário dividi-las e fazer cada lote separadamente.

A página de ajuda de Shotwell, explicando isso, está aqui .

Tom Brossman
fonte
Esta é a maneira correta de fazer isso com data e hora. Muito obrigado por compartilhar.
Geppettvs D'Constanzo 07/03/12
As opções do menu superior do Shotwell não estão aparecendo aqui. Isso é um bug do Xenial Xerus?
Leonardo Castro
3

Esta pergunta foi feita por EXIF, mas os metadados da imagem têm pelo menos três padrões que podem ser anexados às imagens, EXIF, XMP e IPTC. Muitos programas de fotos gravam em todos esses formatos, mas não em todos, por isso é importante verificar todos eles.

Eu descobri que exifé uma boa ferramenta, mas exiv2é melhor. Compare exif:

↪ exif 00000020.jpg 
EXIF tags in '00000020.jpg' ('Intel' byte order):
--------------------+----------------------------------------------------------
Tag                 |Value
--------------------+----------------------------------------------------------
Software            |Shotwell 0.22.0
Date and Time       |1905:01:01 00:00:01
X-Resolution        |72
Y-Resolution        |72
Resolution Unit     |Inch
Date and Time (Origi|1905:01:01 00:00:01
Date and Time (Digit|1905:01:01 00:00:01
User Comment        |Dad
Exif Version        |Exif Version 2.1
FlashPixVersion     |FlashPix Version 1.0
Color Space         |Internal error (unknown value 65535)
--------------------+----------------------------------------------------------

Para exiv2:

↪ exiv2 -p a 00000020.jpg 
Exif.Image.Software                          Ascii      16  Shotwell 0.22.0
Exif.Image.DateTime                          Ascii      20  1905:01:01 00:00:01
Exif.Image.ExifTag                           Long        1  86
Exif.Photo.DateTimeOriginal                  Ascii      20  1905:01:01 00:00:01
Exif.Photo.DateTimeDigitized                 Ascii      20  1905:01:01 00:00:01
Exif.Photo.UserComment                       Undefined  11  Dad
Iptc.Application2.Program                    String      8  Shotwell
Iptc.Application2.ProgramVersion             String      6  0.22.0
Iptc.Application2.Keywords                   String      8  2015scan
Iptc.Application2.Keywords                   String     11  Lissner-Jay
Iptc.Application2.Keywords                   String      6  People
Xmp.exif.DateTimeOriginal                    XmpText    20  1905:01:01 08:00:01
Xmp.exif.DateTimeDigitized                   XmpText    20  1905-01-01T08:00:01Z
Xmp.xmp.CreateDate                           XmpText    20  1905-01-01T08:00:01Z
Xmp.dc.subject                               XmpBag      3  2015scan, Lissner-Jay, People
Xmp.digiKam.TagsList                         XmpSeq      2  People, People/Lissner-Jay
Xmp.MicrosoftPhoto.LastKeywordXMP            XmpBag      2  People, People/Lissner-Jay

A grande diferença aqui é que as palavras-chave em XMP e IPTC não estão em EXIF ​​e, portanto, se eu apenas olhasse lá, acho que não tinha palavras-chave.

Eu dei o comando exiv2 -p a my-image.jpgporque isso exibe todas as três formas de metadados. Sair -p aapenas mostrará os dados EXIF.

mlissner
fonte