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 definirá o carimbo de data e hora do sistema de arquivos para corresponder ao EXIF.
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 definirá o carimbo de data e hora do sistema de arquivos para corresponder ao EXIF.
Respostas:
É o inverso de Existe algum software que defina as datas EXIF com base na data de modificação do arquivo? , e tenho certeza de que todos os programas listados serão aplicáveis.
Destes, para esta tarefa muito simples, jhead é minha sugestão. Por exemplo, o comando
jhead -ft *.jpg
define vários arquivos para que o registro de data e hora do arquivo corresponda a EXIF.
find
, para passar por subdiretóriosPara executar a recursão em subdiretórios, você pode combiná-lo com o find
comando disponível no Linux / Unix / Mac (ou Cygwin for Windows):
find -name '*.jpg' -exec jhead -ft {} +
Ou para encontrar algum de *.JPG *.JPEG *.jpg *.jpeg ...
vocês também pode tentar
find -iname '*.jp*g' -exec jhead -ft {} +
Você também pode usar o find para mostrar apenas todos os arquivos que seriam ... encontrados, sem executar nenhum outro comando (como o jhead):
find -iname '*.jp*g'
Outros utilitários como o ExifTool ou o Exiv2 são muito mais capazes, mas ao preço da complexidade. Nunca me lembro de imediato das opções corretas para fazer algo com elas e tenho que examinar a documentação todas as vezes, mas jhead -ft
é fácil lembrar com o "tempo fixo" mnemônico.
Apenas para completar, no entanto, I fez olhada na documentação e com ExifTool , faça o seguinte:
exiftool -r '-DateTimeOriginal>FileModifyDate' directoryname
(Remova a opção -r
se você não quiser recursão e, se fizer isso, também poderá fornecer uma lista de arquivos ou um curinga em vez de directoryname
.) E tome cuidado com essas aspas - se você estiver executando isso no Windows, deseja "
em vez de '
.
Com Exiv2 :
exiv2 -T rename *.jpg
Lembre-se de que, com letras minúsculas -t
(ou sem nenhuma -T
), o Exiv2 também renomeia o arquivo para um novo nome com base no carimbo de data / hora, o que pode ser muito confuso. Exiv2 também não faz recursão.
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 renomear novamente os arquivos que já possuem um prefixo de data ( '[0-9][0-9]
para levar em consideração anos e meses). -iname '*.jp*g'
pode ser ignorado porque jhead
apenas processa arquivos suportados (somente arquivos JPEG). %f
para manter o nome do arquivo original.
Irfanview e jhead farão o que você deseja.
Ambos grátis.
Links para ambos abaixo.
O jhead é direcionado pela linha de comando ou pode ser chamado por outros processos.
A versão do Irfanview pode ser chamada de uma linha de comando ou internamente em um lote ou em um arquivo por arquivo.
O exemplo abaixo para Irfanview mostra como copiar em qualquer direção:
Irfanview
Permite alterações na GUI ou na linha de comando do lote ou por transferência de data / hora do arquivo do EXIF para a especificação do arquivo ou vice-versa (sem outras alterações de arquivo, se desejado).
Fonte: Grátis em www.irfanview.com
Isso é MUITO mais fácil e rápido na prática, depois de apenas alguns usos do que as instruções abaixo fazem aparecer. Por exemplo,
para converter a data / hora de um único arquivo em valores EXIF, é necessário
Shift-J, Alt-F, Enter.
Vendo por que o primeiro número de vezes leva mais tempo.
Para fazer isso em um lote de arquivos que o SOUNDS aprende -
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 depois de 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
GUI, um ou muitos arquivos (via exibição em miniatura)
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"
Na linha de comando - este é um "rodar" sem ação, exceto para copiar a data / hora do 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 data / hora na direção oposta (
(especifica arquivos para EXIF), use como acima com (0,0,1,0,0,0,0,0)
jhead
fará qualquer coisa que você possa imaginar com arquivos jpeg
Fonte: Grátis em http://www.sentex.net/~mwandel/jhead/
Eu uso um arquivo em lotes como abaixo. Outras opções são possíveis:
Eles dizem: Coisas que o jhead pode modificar em um arquivo jpeg exif
_________________________
Nota: agosto de 2016: "Usuário anônimo" sugeriu corretamente que uma conversão sugerida não funcionava como eu disse. Eu adicionei extensivamente à área em questão.
Apenas mais uma ferramenta EXIF da linha de comando que pode alterar a data da última modificação dos arquivos para coincidir com a hora da foto, com base na metada EXIF no arquivo de imagem JPEG:
exiv2 -T rename somedir/foo*.jpg
Não se preocupe, o argumento de comando rename
está ok e não faz mal.
Só que a ação de renomeação de arquivo foi usada incorretamente para criar apenas o efeito colateral da alteração do carimbo de data e hora.
Embora eu realmente não recomendo 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 do arquivo de todas as suas imagens JPG. A configuração padrão definirá a data de criação e a data da 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 da modificação será atualizada. Se você copiar a imagem, ela recebe 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 uma classificação fácil e funciona bem com imagens armazenadas em iPhones / dropbox.
Confira meu novo software gratuito "Photo Date Organizer": http://photodateorganizer.sourceforge.net/
O FastStone Image Viewer pode fazer isso (versão 4.9 usada) - basta selecionar os arquivos no painel de miniaturas, clicar com o botão direito do mouse, selecionar "Ferramentas"> "Alterar carimbo de data / hora" - e usar os dados EXIF (com ou sem modificações) ou usar wholy data / hora manual fixa personalizada.
O Advance Renamer é o melhor software amigável, muito simples.
Arraste e solte todas as fotos em AR (Advance Renamer)
Clique em (canto superior esquerdo) Adicionar método -> Novo nome
Clique em uma das imagens na parte inferior central e você verá um botão ExifTool que mostra todos os metadados, basta clicar em um atributo e você receberá a tag. Nesse caso, é<ExifTool:DateTimeOriginal>
Copie isso e cole na caixa de texto Novo nome. Você pode adicionar qualquer coisa antes ou depois IMG_<ExifTool:DateTimeOriginal>
, como DSC_<ExifTool:DateTimeOriginal>
etc.
Clique em Iniciar lote ( canto superior direito) Isso 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.
<Year>_<Month>_<Day> <Hour>_<Min>_<Sec>
Sugeri ao autor do PhotoRenamer, que respondeu ...
PhotoRenamer 3.2 http://www.tgmdev.be/applications/photorenamer/photorenamer.php
Eu adiciono um botão na guia 'Opções' da faixa de opções. A partir daí, você pode selecionar a opção para atualizar o status da hora 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 essa máscara simples, o arquivo será 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 ...
Essa é uma pergunta antiga e parece que existem algumas sugestões que devem funcionar bem, mas a que cheguei para resolver um problema de pedido de arquivo após uma atualização do telefone Android foi essa.
Talvez isso seja útil para alguém.
O outro programa gratuito é o Google Picasa - você pode alterar facilmente a data e a hora de todas as fotos:
Bom artigo sobre o assunto: como alterar a data de uma foto no Picasa para quando a foto foi tirada