Desejo especificar um diretório e fazer com que o software encontre todas as fotos no diretório e seus subdiretórios, e se eles contiverem data / hora EXIF, ele define o carimbo de data / hora do sistema de arquivos para corresponder ao EXIF.

Comentários

Resposta

Este é o inverso de Existe algum software que definirá as datas EXIF com base na data de modificação ‘ do arquivo? , e tenho certeza de que todos os programas listados lá serão aplicáveis.

jhead

Destes, para esta tarefa muito simples, jhead é minha sugestão. Por exemplo, o comando

jhead -ft *.jpg 

define um monte de arquivos para que a data e hora do arquivo corresponda a EXIF.

jhead com find, para percorrer subdiretórios

Para realizar a recursão em subdiretórios, você pode combiná-lo com o comando find disponível no Linux / Unix / Mac (ou Cygwin para Windows):

find . -name "*.jpg" -exec jhead -ft {} + 

Ou para encontrar qualquer um dos *.JPG *.JPEG *.jpg *.jpeg ... você também pode tentar

find . -iname "*.jp*g" -exec jhead -ft {} + 

Você também pode usar find para mostrar apenas todos os arquivos que seriam. .. encontrado, sem executar qualquer outro comando (como jhead):

find . -iname "*.jp*g" 

Outras ferramentas

Outros utilitários como ExifTool ou Exiv2 são muitos mais capaz, mas ao preço da complexidade. Nunca consigo me lembrar das opções certas para fazer qualquer coisa com eles e ter que olhar a documentação todas as vezes, mas jhead -ft é fácil de lembrar com o mnemônico “fix time”.

ExifTool

Porém, apenas para completar, eu examinei a documentação e com ExifTool , faça isto:

exiftool -r "-DateTimeOriginal>FileModifyDate" directoryname 

(Remova o -r se você não “não quero recursão e, se você fizer isso, também pode fornecer uma lista de arquivos ou um caractere curinga em vez de directoryname.) E tenha cuidado com essas aspas – se você” estiver executando isso no Windows, você deseja " em vez de ".

Exiv2

Com Exiv2 :

exiv2 -T rename *.jpg 

Cuidado com minúsculas -t (ou sem qualquer -T) Exiv2 também renomeará o arquivo com um novo nome com base no carimbo de data / hora, o que pode ser muito confuso. Exiv2 também não faz recursão.

Comentários

  • Você está certo, isso é o oposto, mas infinitamente mais útil 🙂
  • jhead é muito útil para isso – E para muitas outras manipulações de arquivo jpg. Tenha cuidado ao usá-lo – é uma ferramenta extremamente poderosa que pode causar uma certa confusão se for mal utilizada. Eu recomendo usá-lo em um arquivo em lote para que você sempre faça o que pretende e teste o resultado em um conjunto de arquivos de teste primeiro.
  • +1, mas eu me dei a resposta 😉 Assim como outros no futuro pode encontrar uma maneira de fazer exatamente o que eu pedi …
  • @olibre Sim, isso funcionará em Linux / Unix ou Mac.
  • Observei alguns navegadores de imagem presentes (diaporama ) imagens apenas na ordem do nome do arquivo (não na hora de modificação do arquivo). Finalmente, uso o carimbo de data / hora EXIF para definir a hora do arquivo E para prefixar o nome do arquivo. Eu uso o comando find -name '[0-9][0-9]*' -o -iname '*.jp*g' -type f -exec jhead -ft -n%Y%m%d_%H%M%S_%f {} +. Explicações: -name '[0-9][0-9]*' para evitar a renomeação de arquivos que já tenham um prefixo de data ('[0-9][0-9] para levar em consideração anos e meses). -iname '*.jp*g' pode ser ignorado porque jhead processa apenas arquivos suportados (apenas arquivos JPEG). %f para manter o nome do arquivo original.

Resposta

Irfanview e jhead farão o que você quiser.
Ambos gratuitos.
Links para ambos abaixo.
jhead é controlado por linha de comando ou pode ser chamado por outros processos.
A versão do Irfanview pode ser chamada a partir de uma linha de comando ou internamente em um lote ou arquivo por arquivo.

O exemplo abaixo para Irfanview mostra como copiar em qualquer direção:


Irfanview

Permite GUI ou mudanças de linha de comando de lote ou por transferência de data / hora de arquivo de EXIF para especificação de arquivo ou vice-versa (sem outro arquivo alterações, se desejado).

Fonte: Gratuito de www.irfanview.com

Isso é MUITO mais fácil e rápido na prática, após apenas alguns usos do que as instruções abaixo o fazem aparecer. Por exemplo,
Para converter a data / hora de um único arquivo em valores EXIF, é necessário
Shift-J, Alt-F, Enter.
Veja por que as primeiras vezes demoram mais.

Para fazer isso para um lote de arquivos SOUNDS complexos de aprender –
Requer: T, Ctrl-A, Alt-F, J, Enter, (Alt-F), Enter
(Ou: T, Ctrl- A, Shift-J, Enter) (oferece menos opções)
MAS, na verdade, é quase totalmente intuitivo após um pouco de uso – os menus o guiam inicialmente até a formação do caminho do cérebro.

GUI, por arquivo

 Options, JPG lossless rotation (Shift-J) Select "Apply original EXIF date/time to new file" Consider also selecting other options 

insira a descrição da imagem aqui

GUI, um ou vários arquivos ( por meio da visualização em miniatura)

AVISO: ( Adicionado 2020!)
Foi apontado que selecionar as opções erradas pode obter um resultado indesejado – por exemplo, todos os arquivos de destino definidos para uma única data selecionada e tempo. Fazer da maneira certa “não é muito difícil” – mas olhe para as várias caixas de seleção e decida qual delas se adapta ao que você deseja fazer.

Open Thumbnails view ("File, Thumbnails" or "T" from Window view Select images to change EXIF data of usually all in folder -> Ctrl-A Then: File, "JPG lossless operations" (1) Change EXIF date/time "Change EXIF date/time" Options are offered to set Date/time to specific setting or to move all times back/forwards by selected DHMS amount calculator provided to check result is as desired. (2) Transfer EXIF date / time to file saved date time "Lossless rotation with selected files" [Shift-J] then, as for single file version above Select "Apply original EXIF date/time to new file" 

insira a descrição da imagem aqui

Da linha de comando – este é um “giro” sem nenhuma ação, exceto para copiar data / hora de EXIF para a data e hora do arquivo. O oposto também pode ser alcançado, se desejado. :

  • i_view32.exe file_spec \ *. jpg / jpg_rotate = (0,0,0,1,0,0,0,0)

  • Para copiar a data / hora na direção oposta ((especificação do arquivo para EXIF)
    use como acima com (0,0,1,0,0,0,0,0)


jhead

fará quase tudo que você pode imaginar com arquivos jpeg

Fonte: Livre de http://www.sentex.net/~mwandel/jhead/

I use um arquivo em lote conforme abaixo. Outras opções são possíveis:

  • jhead -ft % 1 .jpg

Eles dizem: Coisas que o jhead pode modificar em um arquivo exif jpeg

  • Imagens para cima à direita de acordo com a tag de rotação usando jpegtran
    Defina ou ajuste relativo de carimbos de data / hora exif internos
    Corrija deslocamentos de data / hora em grandes lotes de imagens
    Renomeie os arquivos com carimbo de data de acordo com o carimbo de data / hora exif
    Transferir cabeçalhos exif entre imagens
    Substituir miniaturas dentro de cabeçalhos Exif
    Editar comentários jpeg (mas não os comentários Exif)
    Excluir exif ou seções de comentários de imagens jpeg
    Crie um novo cabeçalho exif mínimo contendo data e miniatura

_________________________

Observação: agosto de 2016: ” Usuário anônimo “sugeriu corretamente que uma conversão sugerida não funcionou como eu disse. Eu adicionei extensivamente à área em questão.

Comentários

  • agosto de 2016: ” Usuário anônimo ” sugeriu corretamente que uma conversão sugerida não funcionou como eu disse. Eu ‘ adicionei extensivamente à área em questão.
  • E os arquivos brutos?
  • @MichaelClark I ‘ Fico feliz por você ter feito essa pergunta :-). Noto que todos nós parecemos ter abordado JPG arquivos e não RAW. Eu ‘ d imagino que você seria uma das pessoas mais propensas a perguntar como fazer isso com arquivos RAW :-).
  • CUIDADO: a etapa 1 em ” GUI, um ou vários arquivos (via visualização em miniatura) ” é enganosa: define todos os arquivos selecionados para a mesma data e hora (que não é o que foi perguntado na pergunta). Apenas a etapa 2 leva ao resultado solicitado.
  • @Christoph Obrigado. Eu adicionei uma nota de advertência geral no início de essa seção.

Resposta

Apenas outra ferramenta EXIF de linha de comando que pode alterar a data da última modificação dos arquivos para coincidir com a hora de tirar a foto, com base na metada EXIF no arquivo de imagem JPEG:

 exiv2 -T rename somedir/foo*.jpg 

Não se preocupe, o argumento do comando rename está certo e não causa danos.
Acontece que a ação de renomear arquivo é mal utilizada para apenas criar o efeito colateral de alterar o carimbo de data / hora.

Resposta

Embora eu realmente não recomende confiar na data / hora do arquivo quando se trata de suas imagens, você pode usar uma ferramenta gratuita chamada EXIF Date Changer para definir em lote as datas dos arquivos de todas as suas imagens JPG.A configuração padrão definirá as datas de criação e de modificação do arquivo para a foto tirada.

A razão pela qual eu não recomendo isso é que a data do arquivo é facilmente atualizada. Se você editar a imagem, a data de modificação é atualizada. Se você copiar a imagem, ela receberá uma nova data.

Uma solução muito melhor é renomear os arquivos para incluir a data / hora no próprio nome do arquivo. Isso ainda permite fácil classificação e funciona bem com imagens armazenadas em iPhones / caixa de depósito.

EXIF Date Changer - Defina as datas dos arquivos para a data em que foram feitos

Resposta

Confira meu novo software gratuito “Photo Date Organizer”: http://photodateorganizer.sourceforge.net/

insira a descrição da imagem aqui

Comentários

  • Da página SourceForge: ” Trazido a você por: killdaclick “. Anunciar seus próprios produtos isn ‘ é proibido aqui, mas você deve deixar claro qual é a sua afiliação.
  • @PhilipKendall done 🙂

Resposta

FastStone Image Viewer pode fazer isso (versão 4.9 usada) – basta selecionar os arquivos no painel de miniaturas e clicar com o botão direito neles , selecione “Ferramentas”> “Alterar carimbo de data / hora” – então você pode usar dados EXIF (com ou sem modificações) ou usar data / hora manuais fixas e personalizadas.

Comentários

  • Uau! Eu, não sabia disso. Tenho usado a ferramenta de captura de tela deles há anos e não encontrei nada melhor. Você pode obter a última versão gratuita aqui ; Eu em ‘ não preciso de nenhum dos recursos de pagamento. Também usei o visualizador deles no passado, mas não sabia que poderia fazer isso.

Resposta

Advance Renamer é o melhor software amigável que é muito simples.

  1. Arraste e solte todas as fotos para AR (Advance Renamer)

  2. Clique em (canto superior esquerdo) Adicionar método -> Novo nome

  3. Clique em uma das partes centrais da imagem, você “verá um botão ExifTool que mostra todos os metadados, basta clicar em um atributo e você “obterá a tag. Neste caso, é <ExifTool:DateTimeOriginal>

  4. Copie e cole no Novo nome caixa de texto Você pode adicionar qualquer coisa antes ou depois como IMG_<ExifTool:DateTimeOriginal>, DSC_<ExifTool:DateTimeOriginal> etc.

  5. Clique em Iniciar lote (Topo Certo) Isso irá renomear todos os seus arquivos com a data, por exemplo 2017_12_01 19_10_12 É sempre bom ter a data original no nome do arquivo, pois os atributos podem ser perdidos, mas os nomes dos arquivos não.

  6. Novamente, arraste todos os renomeados arquivos para AR
  7. Clique em Novo método -> Timestamp
  8. Marcar tudo 3 caixas de seleção Criar, Modificar, Acessado (Acessado às vezes pode não funcionar, apenas desmarque se acontecer)
  9. Selecione Padrão de Nome de Arquivo e cole <Year>_<Month>_<Day> <Hour>_<Min>_<Sec>
  10. Iniciar lote.
  11. Você é bom. Missão cumprida

Resposta

Eu concluí baguncei datas de arquivos em minha biblioteca, mas não fiquei satisfeito com nenhuma das ferramentas. Algumas não suportam recursão de diretório, outras não podem modificar alguns timestamps específicos do Windows, outras são difíceis de usar.

Fiz um novo ferramenta de linha de comando para tarefa única – processar recursivamente todos arquivos em determinado diretório para extrair a data EXIF e definir a data do arquivo para ele.

A ferramenta é multiplataforma.

Por favor, consulte ExifDate2FS

Resposta

Esta é uma pergunta antiga e parece que existem algumas sugestões que devem funcionar bem, mas aquele que cheguei para resolver um problema de ordem de arquivo após uma atualização do telefone Android foi este.

  • Abra o Windows (pela primeira vez em anos)
  • Instale ExtFS ou algo que possa ler partições ext4
  • Copie fotos para o disco rígido do Micro SD
  • Use o Alterador de atributos ( https://www.petges.lu/home/ ) para definir as datas de criação / modificação para a data EXIF
  • Whack card de volta no telefone
  • Copiar as fotos de volta para o telefone por MTP

Talvez isso seja útil para alguém.

Resposta

Eu me inscrevi no StackExchange apenas então eu poderia agradecer ao OP por ter postado isso e adicionar meu workaroun d bc alguns dos comandos aqui não funcionaram para mim. Desculpe, vou falar sobre meu processo.

Estou no meio de um esforço do tipo “Vamos finalmente limpar meus arquivos de fotos”, pois a luta é real, especialmente porque o iCloud e o Google Fotos os retiram do seu dispositivo e o gerenciamento de arquivos tem pouco para fazer com isso hoje em dia (e em tempos anteriores, bons serviços e produtos eram um pouco rebeldes e impunham uma estranha aleatoriedade e duplicação que exigia um esforço real para ser superada.)

Eu usei o Flickr para tirar fotos minha máquina quando meu drive era pequeno demais para comportar todos. Eu usei o Google Fotos em uma conta desde 2006, então eu tinha um conjunto de cópias aleatórias e fotos exclusivas lá em cima, por meio de suas diferentes encarnações de upload.

Quando a fotografia do iPhone realmente começou a funcionar, eu conectei por USB, importei-os para o meu Dropbox, que iria renomeá-los com um carimbo de data e hora 🙌🏻, coloquei-os em uma pasta ano / mês com um pouco de curadoria para separar as capturas de tela e fotos de compras, e o Google Fotos monitorava essa pasta de arquivo para fazer o upload. Isso funcionou bem até que o iCloud apreendeu as fotos do meu iPhone e comprovou que exigia seu próprio fluxo de trabalho para fazer o download. duplicação sempre foi um GRANDE problema, uma ferramenta chamada Gemini II finalmente tornou possível esse projeto de limpeza e arquivamento.

Para consolidar meu arquivo em um drive externo, decidi baixe todas as fotos, exceto as mais recentes do iCloud (usando Image Capture e um USB para meu telefone: não 100% confiável), Flickr e Google e limpe tudo.

Foi assim que descobri Dados Exif: algumas fotos (apenas algumas) não eram arquivos planos (veja a imagem abaixo) e mostravam seus metadados no Finder. A maioria só tem a data de Criação-Modificação visível. Wh em Eu baixei do Flickr (e alguns do Google) salvei como se tivessem sido criados e modificados no dia em que baixei. Não é bom. Alguns tinham dados EXIF visíveis, mas muitos / a maioria pareciam planos. Eu estava excluindo duplicatas porque elas tinham o carimbo de data / hora errado (se fossem do mesmo tamanho ou menores). Descobrir os dados Exif e o carimbo de hora me trouxe até aqui.

A etapa do Dropbox sempre foi importante para mim porque IMG _ #### ou DSC #### sempre foi inútil. Alguém me perguntou por que não pulei a etapa do Dropbox e usei o Automater para renomeá-los. O Automater não tem os recursos que posso ver, mas graças ao Jhead isso finalmente vai funcionar.

Eu descobri como primeiro instalar o jhead e, em seguida, executar o jhead através de um diretório recursivamente e na maioria das vezes, os dados EXIF ainda estavam nos arquivos de fotos. Resultado: o jhead mudou o datas dos arquivos para o que estava nos dados EXIF. Sem decepções.

Primeiro, para usuários do Mac: siga as instruções de instalação do untar na linha de comando (Terminal). Se você não os encontrar para o jhead, encontre instruções gerais de untar e sub no local do tarball do jhead. Isso funcionou, porque baixar e tentar instalar a partir da linha de comando certamente não funcionou. Em seguida: certifique-se de instalar o Xcode fora da App Store. Todos os desenvolvedores da Apple precisam deste programa e ele faz comandos funcionarem que de outra forma não funcionariam. Ele é necessário para “fazer” e “instalar, fazer”.

Usando a ferramenta jhead: Não estou familiarizado com a leitura de instruções e manuais do Unix (man jhead), mas familiarizado o suficiente com CLI que se alguém documentou algo em algum lugar, tento suas opções até que algo funcione.

Isso não funcionou para mim:

[diretório que eu quero]> find -name “* .jpg” -exec jhead -ft {} +

Em outro lugar no StackExchange, encontrei uma string de pesquisa recursiva diferente que comecei a trabalhar para encontrar (ela tinha uma opção -print que não parecia necessária):

 find . | grep ".*[.]jpg" 

mas se eu adicionasse o comando jhead, receberia um erro dizendo que não entendia “grep”

Desconstruindo termos de pesquisa adicionando e removendo opções / variáveis de pesquisa e tentando fazer o jhead ser parte desse comando não funcionou até que eu tentei uma convenção antiga:

jhead -ft ./*/*.jpg 

Isso funcionou em um diretório longo inteiro e não cuspir muitos erros como “não contém registro de data e hora EXIF” ou “Erro: hora” 0000: 00: 00 00:00:00 “: não é possível con vert para o tempo Unix “

Quando eu olhei, apenas uma minoria dos carimbos de data / hora baixados ontem permaneceu. Testei isso nas outras 10 pastas de arquivos que tinha na minha pasta “duplicados”. Coisas datadas de 2020 foram revertidas para 2004, 2013, 2012. Aprendi que se você percorrer o mesmo diretório duas vezes, não obterá saída uma segunda vez.

Então usei o jhead para renomear meus arquivos de acordo com a convenção de carimbo de data / hora. Funcionou perfeitamente; se o nome do arquivo original continha significado para você e você deseja mantê-lo, certifique-se de incluí-lo na string de carimbo de data escolhida:

" "%f … *.jpg 

Agora acho frustrante que o Finder seja inconsistente em exibir essas informações quando poderia. Abaixo está um exemplo de um arquivo para o qual o Finder está mostrando informações completas (incomum). Imagem das informações do Mac OS Finder dos dados EXIF da foto, completo

Comentários

  • Olá, bem-vindo ao Photo-SE. Essas Stack Exchanges são sites Q & A, onde cada resposta tenta responder diretamente à pergunta. Eles não são como fóruns de discussão mais comuns, que geralmente são encadeados, e as postagens são respostas umas para as outras tanto quanto (geralmente mais do que) à postagem original. Conforme está escrito, sua resposta é muito orientada para a discussão e narrativa sobre suas necessidades e processos para uma ferramenta de renomeação, em vez de se concentrar em responder à pergunta conforme solicitado.
  • Em um aspecto técnico detalhe, a razão find -name '*.jpg' -exec jhead -ft {} + não ‘ t funcionar é porque find precisa de um caminho para pesquisar em antes de expressões como -name <...> serem fornecidas. Eu ‘ atualizei a resposta aceita / com maior votação para corrigir o erro. Em vez disso, tente isto: find . -name '*.jpg' -exec jhead -ft {} +
  • O que o faz pensar que eu não ‘ iniciei o comando de dentro do caminho de o diretório que eu queria? Se não ‘ não funcionou, não ‘ não funcionou. Eu encontrei minha solução alternativa. Isso tornou minha vida mais fácil. Então eu postei e passei adiante. Se os exemplos do mundo real que explicam coisas para não programadores não forem ‘ bem-vindos e eu for repreendido por não ser técnico o suficiente, ganhei ‘ t comentar novamente. Bravo.
  • Se você digitou como escreveu, então não ‘ o comando não funcionaria . Ou seja, erro de entrada. O que sugeri (find . -name '*.jpg' -exec jhead -ft {} +) é o que você precisaria usar se quisesse executá-lo a partir do caminho do diretório desejado. O ponto como caminho significa ” diretório local “. find requer um caminho de pesquisa inicial. Isso está disponível nas páginas de manual find ‘ s.
  • Sobre a explicação de coisas para não programadores: boas respostas são absolutamente desejado nos sites do Stack Exchange. Desde que , entretanto, eles sejam respostas para a pergunta. Reserve um momento para ver o breve Tour pelo site para ter uma ideia de como os sites Stack Exchange são diferentes dos fóruns de discussão na Internet.

Resposta

Sugeri ao autor de PhotoRenamer, que respondeu …

PhotoRenamer 3.2 http://www.tgmdev.be/applications/photorenamer/photorenamer.php

Eu adicionei um botão em a guia Opções da Faixa de Opções. A partir daí, você pode selecionar a opção para atualizar o status de tempo do arquivo do arquivo.

A propósito, para evitar o uso de máscara, também adiciono um novo atributo de máscara:% F. Se você usar esta máscara simples, o arquivo é renomeado … com seu próprio nome … Portanto, você não é obrigado a renomear o arquivo para o qual deseja atualizar os atributos de tempo do arquivo …

Resposta

O outro programa gratuito é o Google Picasa – você pode facilmente alterar em lote a data e a hora para todos as fotos:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Bom artigo sobre isso: Como alterar a data de uma foto no Picasa para quando a foto foi tirada

Comentários

  • Como é esta solução trabalhando ? O OP deseja alterar a data do arquivo para corresponder à data EXIF . Provavelmente não é isso que o Picasa está fazendo.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *