Transferir informações de GPS exif de uma imagem para outra

13

Eu tenho uma câmera (não um celular) que insere informações de gps exif nas fotos.

O fato é: o uso de "gps on" sempre descarrega a bateria. Então eu pensei: que tal tirar apenas uma foto com GPS e eles em casa adicionam essas informações exif às outras?

Gostaria de saber se existem aplicativos que você conhece que podem me ajudar nesse cenário: ter uma foto com informações exif sobre gps, copie essas mesmas informações de gps para um lote de outras fotos.

(Prefiro soluções Linux / Mac, mas também aceito janelas. Não me importo se for um aplicativo de linha de comando.)

Alguém ainda usa você no MS-DOS
fonte

Respostas:

13

Dê uma olhada no ExifTool . É um canivete suíço de manipulação de informações Exif, pode fazer o que você precisa, entre muitas outras coisas. É uma ferramenta de linha de comando compatível com Windows / Linux / Mac e também um módulo Perl. Código aberto e gratuito:

A opção "-tagsFromFile"

Uma opção especial do ExifTool permite copiar tags de um arquivo para outro. A sintaxe da linha de comando para fazer isso é "-tagsFromFile SRCFILE". Quaisquer tags especificadas após esta opção na linha de comando são extraídas do arquivo de origem e gravadas no arquivo de destino. Se nenhuma tag for especificada, todas as tags graváveis ​​serão copiadas. Esta opção é muito simples, mas muito poderosa. Dependendo dos formatos dos arquivos de origem e de destino, algumas das tags lidas podem não ser válidas no arquivo de destino, caso em que não são gravadas.

O comando a seguir alterará todos os arquivos no diretório atual e seus filhos (recursivamente), copiando todas as tags relacionadas ao GPS do arquivo SOURCE.JPG:

exiftool - sobrescrever_original_do_ lugar -r -tagsFromFile SOURCE.JPG -gps: all.

Outra maneira de fazer isso é colocar o seguinte em um script. O primeiro parâmetro passado deve ser o arquivo para copiar as coordenadas GPS e todos os outros parâmetros são os arquivos de destino a serem atualizados:

#!/usr/bin/env bash
lon=$(exiftool -s3 -GPSLongitude "$1")
lat=$(exiftool -s3 -GPSLatitude "$1")
exiftool -GPSLongitude="$lon" -GPSLatitude="$lat" "${@:2}"
haimg
fonte
2
jhead é outro utilitário muito útil que pode complementar o ExifTool.
precisa saber é o seguinte
1
@ Alguém ainda usa o MS-DOS: todos os argumentos (itens da $@matriz) iniciando com o segundo. Além disso, são quatro linhas agora que percebi que coloquei um monte de coisas desnecessárias (e incorretas) lá. (Além disso, "resolvido".)
user1686 11/11/12
1
Enquanto você estiver usando o script, eu vou manter facedesking sobre o fato de que eu perdi totalmente a tagsFromFileopção que poderia ter feito o mesmo em uma linha ...
user1686
1
@grawity: Eu estava um pouco surpreso com a sua edição :-)
haimg
2
@grawity e @haimg: exiftool −overwrite_original_in_place -r -tagsFromFile SOURCE.JPG -gps:all .- a -ropção se repete no diretório ( .), e o -gps:all, bem ... é exatamente o que eu estava procurando. Eu venci você, grawity! :) Acho que você pode editar este post e adicionar esse trecho, mas lembre-se de alertar as pessoas a lerem exiftool --helppara entender as outras opções que eu dei ... obrigado a todos!
Alguém ainda usa o MS-DOS
0

Você também pode usar o exiv2 - é muito mais rápido e, por exemplo, pode gravar dados exif em imagens da webp (e outras).

exiv2 -PkV --grep GPSL source.jpg | exiv2 -m- destination.webp

Este é um exemplo da placa exiv2 .

Adrian Siemieniak
fonte