12

У меня есть камера (не мобильный телефон), которая вставляет информацию GPS Exif в фотографии.

Факт: использование "gps on" все время разряжает батарею. Поэтому я подумал: как насчет того, чтобы сделать только одну фотографию с включенным gps, и они дома добавят эту информацию exif другим?

Я хотел бы знать, есть ли приложения, о которых вы знаете, которые могут помочь мне в этом сценарии: имея фотографию с exif-информацией о gps, скопируйте эту же gps-информацию в пакет из других изображений.

(Я предпочитаю решения для Linux/Mac, но я также принимаю и окна. Я не против, если это приложение командной строки.)

1 ответ1

10

Посмотрите на ExifTool. Это швейцарский армейский нож для манипулирования информацией Exif, может делать то, что вам нужно, среди многих других вещей. Это Windows/Linux/Mac-совместимый инструмент командной строки, а также модуль Perl. Бесплатный и открытый исходный код:

Опция "-tagsFromFile"

Специальная опция ExifTool позволяет копировать теги из одного файла в другой. Синтаксис командной строки для этого - «-tagsFromFile SRCFILE». Любые теги, указанные после этой опции в командной строке, извлекаются из исходного файла и записываются в целевой файл. Если теги не указаны, копируются все доступные для записи теги. Эта опция очень простая, но очень мощная. В зависимости от форматов исходного и конечного файлов, некоторые из прочитанных тегов могут быть недействительными в конечном файле, и в этом случае они не записываются.

Следующая команда изменит все файлы в текущем каталоге и его дочерних элементах (рекурсивно), скопировав все связанные с GPS теги из файла SOURCE.JPG:

exiftool -overwrite_original_in_place -r -tagsFromFile SOURCE.JPG -gps: все.

Другой способ сделать это - поместить в скрипт следующее. Первый передаваемый параметр должен быть файлом, из которого копируются координаты GPS, а все остальные параметры являются целевыми файлами, которые необходимо обновить:

#!/usr/bin/env bash
lon=$(exiftool -s3 -GPSLongitude "$1")
lat=$(exiftool -s3 -GPSLatitude "$1")
exiftool -GPSLongitude="$lon" -GPSLatitude="$lat" "${@:2}"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .