Como altero em lote as informações da data da coleta nos dados EXIF?


30

Eu uso o F-Spot para gerenciar minhas imagens. Para um conjunto de imagens, as datas ficaram confusas e todas foram marcadas como 1º de setembro de 2007. Gostaria de alterar as informações da data obtida para uma data diferente. Como posso fazer isso?

Respostas:


25

jhead é capaz de fazer isso.

Digamos que você saiba que uma determinada foto foi tirada, 2017-04-19 16:20mas a data atual está sendo exibida como 2007-09-01 00:15, você pode ajustar todas as jpgfotos de uma pasta para a hora correta, fazendo:

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

Aqui está um extrato do 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

Uma opção ainda mais poderosa é o ExifTool .


Jhead usado recentemente para corrigir e sincronizar os carimbos de data / hora em centenas de fotos de férias em família, nas quais três câmeras tiveram os dados e a hora configurados incorretamente. Fácil de usar e bastante útil.
Will M

O Jhead parece não suportar tipos de arquivos RAW, mas o ExifTool suporta (por exemplo, Canon CR2, Nikon NEF, Sony ARW). É bom saber, para aqueles de nós que gravam apenas em RAW ou RAW e JPEG.
Samir

É compatível com o Windows 10?
XPMai

O @XPMai ainda funciona com o Windows 10 - acabei usando -ds para meus propósitos.
alexander7567


3

exiv2 é uma ferramenta de linha de comando para manipular dados exif. Os formatos de imagem suportados são JPEG, Canon CRW e Canon THM. PNG é somente leitura.

Se você deseja definir a data do arquivo para a data exif, você pode usar exiv2 com a seguinte opção.

-t Defina o timestamp do arquivo de acordo com o Exif create timestamp, além de renomear o arquivo (substitui -k). Esta opção é usada apenas com a ação 'renomear'.


obrigado! O exiv2 é fácil de usar e rápido. -Tpermite definir o timestamp arquivo sem renomeação de arquivo :)
orzechow


2

Aqui está o que eu precisava

Para adicionar deslocamento constante à data antiga

exiv2 ad -a -3:17 *.JPG

Para renomear para %Y%m%d_%H%M%S

exiv2 mv *.JPG

Outros formatos e opções são especificados nas páginas de manual .


1

Você pode tentar esta ferramenta gratuita: Exifer .


1
@RandolphWest Por favor, deixe apenas comentários linkar se eles realmente fazem sentido. Embora essa resposta não seja perfeita , tudo o mais pode ser facilmente determinado clicando no link. Todo o resto que possa ser incluído aqui não ajudará se a página vinculada for alterada de forma significativa, porque o software não estará mais disponível para download. De fato, incluir muitos detalhes (como uma lista completa de recursos) significa apenas que a resposta rapidamente fica desatualizada se o software vinculado mudar.
Daniel Beck

@DanielBeck O fato de o link na resposta não levar mais para onde deveria é o exemplo perfeito de por que as respostas somente para links são ruins.
Raphael

@ Rafael Por favor, releia meu comentário começando com a terceira frase. Nada que pudesse ser descrito aqui seria capaz de corrigir essa resposta.
Daniel Beck

1

Eu uso o seguinte script para fornecer às imagens algumas datas sucessivas. Espero que ajude. Ele espera que um diretório com as imagens seja redacionado 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

O iPhoto e o Aperture têm uma opção de mudança de horário, para quando você estiver em um novo fuso horário normalmente ou o relógio estiver errado. Ele pode deixar os arquivos sem edição (atualizando apenas o banco de dados do aplicativo) ou editar os arquivos. Claramente, o F-Spot precisa emprestar isso.


0

Exiftool: lento na linha de comando. (Está escrito em Perl, então tire suas próprias conclusões.)

O Exifer cria uma tag vazia ou duas nos arquivos, e não apenas no bloco EXIF. Também removerá algumas tags escritas por outras ferramentas. Como não o uso há mais de um ano, não posso ser específico sobre quais.

O material do FastStone, imx, é muito lento para se manter instalado por mais de um dia ou dois.

Meu voto é para o RH. Sugestão de Weinzerl: Exiv2.

BZT


0

O Picasa 3 , uma ferramenta gratuita de gerenciamento de fotos do Google, fará isso e é rápido e agradável.

No Picasa, selecione o menu Exibir> Propriedades para exibir o painel Propriedades.

Selecione a pasta que contém as fotos e elas aparecerão como uma coleção de miniaturas.

Selecione as miniaturas que você deseja atualizar. Para decidir qual atualizar como um lote, você pode configurá-los para a mesma nova data / hora ou alterar o primeiro e todo o resto será alterado no mesmo valor.

No painel Propriedades, clique com o botão direito do mouse no campo Data da câmera e selecione Ajustar data e hora ... no menu de contexto. A caixa de diálogo Ajustar data da foto será exibida, mostrando a data atual da câmera para a primeira foto.

Edite a data e a hora da câmera, conforme necessário. Se você deseja alterar am para pm ou vice-versa, basta selecionar a parte "am" do horário e digite "a" ou "p" conforme apropriado. Não há necessidade de digitar toda a coisa "sou" ou "pm".

Existem duas opções, se você selecionou mais de uma miniatura para atualização: "Ajustar todas as datas das fotos pela mesma quantidade" ou "Definir todas as fotos para a mesma data e hora". Escolha o que for apropriado. Depois clique em OK.

As datas EXIF ​​de todas as fotos selecionadas serão atualizadas.


Veja a resposta anterior de @ user28515 que também sugere o Picasa; infelizmente, não está mais disponível.
JohnC

Embora o Picasa não esteja mais sendo desenvolvido pelo Google e eles tenham removido o instalador do site, ainda é possível fazer o download da última versão, v3.9. Ao pesquisar no Google "baixar o picasa 3.9", você encontrará muitos hits. Se você está interessado em fazer o download de um site aleatório, o download oficial do Google ainda está disponível na Internet Archive Wayback Machine. Para obter mais informações, consulte aqui: sites.google.com/site/picasaresources/Home/Picasa-FAQ/picasa/…
SimonTewsi

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.