Руководство по GPS метаданным в фотографиях (ч. 2): Как изменить GPS и другие метаданные в фотографии


Оглавление: Руководство по GPS метаданным в фотографиях

1. Географические координаты и их извлечение из файлов

2. Как изменить GPS и другие метаданные в фотографии

2.1 Как узнать координаты любого места

2.2 Название тегов метаданных. Группы тегов

2.3 Программы выводят только ту метаинформацию, которую поддерживают. Иногда метаинформацию невозможно удалить полностью

2.4 Как удалить только определённые теги в метаданных

2.4.1 Как удалить только GPS метаданные

2.4.2 Как удалить только дату и время создания

2.4.3 Как удалить только информацию о камере

2.4.4 Как удалить только примечание

2.5 Как изменить GPS координаты в фотографии

2.5.1 Изменение места съёмки в Geotag

2.5.2 Изменение места съёмки в ExifTool

2.5.3 Изменение места съёмки в Exiv2

2.6 Как изменить дату съёмки в метаданных фотографии

2.6.1 Изменение даты съёмки в Geotag

2.6.2 Изменение даты съёмки в ExifTool

2.6.3 Изменение даты съёмки в Exiv2

2.7 Как изменить примечания в метаданных файла фотографии

2.7.1 Изменение примечаний в Geotag


2.7.2 Изменение примечаний в ExifTool

2.7.3 Изменение примечаний в Exiv2

2.8 Как поменять модель камеры в метаданных снимка

2.9 Как сохранить метаданные в отдельный файл

2.10 Копирование метаданных между файлами

2.11 Обработка большого количества фотографий

2.12 Пример подмены метаданных

3. Построение треков движения на основе группы фотографий


Посмотрите на метаданные этого изображения: https://hackware.ru/files/Kremlin.zip

А именно, посмотрите на координаты, дату съёмки, камеру, примечания. Воспользуйтесь сервисами геолокации, чтобы сравнить, насколько показываемое ими расположение отличается от изображения на фотографии.

Файл помещён в архив, чтобы вы смогли оценить ещё и дату изменения.

Прочитав эту инструкцию, вы сможете шутить над любителями проверять метаданные, а также над сервисами, которые автоматически указывает место съёмки (Инстаграм, Твиттер).

Как узнать координаты любого места

Для спуфинга GPS нужно знать, какие географические координаты имеет нужное место. Это можно сделать открыв карту (https://www.google.com/maps), затем найдите нужное вам место и настройте вид так, чтобы оно было в центре, если нужно, увеличьте масштаб. Затем посмотрите на адресную строку веб-браузера, там будет что-то вроде: https://www.google.com/maps/@14.9684368,98.6656482,10.75z


Первые два числа после @, которые разделены запятыми, это и есть широта и долгота.

Название тегов метаданных. Группы тегов

Если вы решили не просто удалить метаинформацию, а манипулировать ей, то вам нужно знать больше подробностей, чтобы не попасть в просак из-за того, что вы забыли о теге с дублирующими данными, в результате чего метаинформация станет противоречивой или просто выдаст настоящие данные.

Чтобы манипулировать тегами метаинформации (удалять, изменять, показывать, исключать выбранные теги) нужно знать их название. Названия тегов стандартизировано.

Программы, показывающие метаданные, обычно не выводят правильное название тегов. Вместо этого они обычно показывают данные в дружественном для пользователя виде, иногда даже переводя на язык пользователя.

Правильное название тега можно посмотреть с помощью программы Exiv2 если запустить её с опцией «-p a»:

exiv2 -p a ФОТОГРАФИЯ

Название тегов из этого вывода можно использовать и для ExifTool — нужно брать часть имени после последней точки. А в Exiv2 нужно использовать полное имя.

Этот способ кажется простым, но он это НЕ идеальный вариант, поскольку программа exiv2 поддерживает всего три группы тегов: Exif, IPTC и XMP. А групп тегов десятки (не тегов, а ГРУПП) — в документации по ExifTool перечислены группы тегов, которые поддерживает эта программа, оцените их количество.

У программы ExifTool есть обширная документация по тегам с их правильным названием, чтобы её увидеть выполните команду:

man Image::ExifTool::TagNames

Существует много групп тегов, самой популярной для файлов .jpg является Exif. Также распространены IPTC, XMP, MakerNotes.

Посмотреть, к какой группе относится тег метаинформации можно программами exiv2 (с опцией -p a как это было показано выше — вначале идёт название группы, а затем название подгруппы и далее уже сам тег). А также с помощью exiftool если указать опцию -G. Вы можете добавить опцию -e чтобы не выводить композитные (ненастоящие, сформированные для удобства) теги:

exiftool -G -e ФОТОГРАФИЯ

Важно знать, что одна и та же информация может дублироваться в разных тегах, относящихся к разной группе. Более того, в одной группе могут быть теги с близкими функциями. Например, в группе Exif имеются теги DateTime, DateTimeOriginal и DateTimeDigitized — все они связаны с временем создания. Также в этой группе есть теги Model и Software — последний тег содержит название прошивки телефона и позволяет однозначно определить модель, как и первый тег, который содержит название модели.

Примеры тегов, относящихся ко времени:

[File]          File Modification Date/Time     : 2020:12:13 11:37:12+03:00
[File]          File Access Date/Time           : 2020:12:14 07:44:19+03:00
[File]          File Inode Change Date/Time     : 2020:12:14 07:43:58+03:00
[EXIF]          Modify Date                     : 2019:11:10 16:17:30
[EXIF]          Date/Time Original              : 2019:11:10 16:17:30
[EXIF]          Create Date                     : 2019:11:10 16:17:30
[EXIF]          GPS Time Stamp                  : 09:17:30
[EXIF]          GPS Date Stamp                  : 2019:11:10
[MakerNotes]    Time Stamp                      : 2019:11:10 12:17:31+03:00

File — это не совсем метаинформация, это свойства файла.


Примеры тегов, которые позволяют определить тип и модель устройства:

[EXIF]          Make                            : samsung
[EXIF]          Camera Model Name               : SM-J710F
[EXIF]          Software                        : J710FXXU6CSE1
[MakerNotes]    Device Type                     : Cell Phone

Примечание: это не все возможные теги и дубликаты. Это теги, которые я нашёл в первой попавшейся фотографии.

Программы выводят только ту метаинформацию, которую поддерживают. Иногда метаинформацию невозможно удалить полностью

Посчитаем, сколько строк выводит программа exiv2:

exiv2 -p a 20190930_095515.jpg | wc -l
63

А теперь для exiftool:

exiftool -e 20190930_095515.jpg | wc -l
76

Это объясняется тем, что программа Exiv2 поддерживает только три группы тегов: Exif, IPTC и XMP. А программа ExifTool поддерживает практически все возможные группы.

Помните о том, что некоторые файлы не позволяют полностью удалять метаинформацию из них. Пример таких файлов — PDF. Изменения файлов PDF с помощью ExifTool обратимы (путём удаления обновления с помощью «-PDF-update:all=»), поскольку исходная информация никогда не удаляется из файла. Таким образом, один только ExifTool нельзя использовать для безопасного редактирования метаданных в файлах PDF.

Также нужно быть осторожным с MakerNotes. Например, командой полного удаления MakerNotes мне так и не удалось избавиться от тега с отметкой времени в MakerNotes, хоте все другие теги из этой группы удалялись. В RAW (необработанных) форматах в MakerNotes могут храниться важные сведения для последующей обработки изображения, то есть нужно быть осторожным с удалением этой группы.

Как удалить только определённые теги в метаданных

Мы уже обладаем всей необходимой теоретической частью для подделки местоположения в метаданных фотографий, но начнём с рассмотрения других возможностей, которые отсутствуют в простых программах для очистки метаданных.

Программы вроде mat и mat2 могут очистить сразу все метаданные. Но ExifTool позволяет удалять определённые теги или оставлять определённые теги. Например, можно удалить только GPS метаданные оставив всю остальную информацию нетронутой. Рассмотрим несколько примеров.

Следующие способы удаления части метаинформации вы можете комбинировать друг с другом (например, удалить GPS и модель камеры). Этого можно достичь как последовательным выполнением указанных команд, так и в одной команде, собрав в ней все нужные опции для удаления.

Как удалить только GPS метаданные

Для удаления всех GPS геотегов с помощью ExifTool используйте опцию «-gps:all=»:

exiftool -gps:all= ФОТОГРАФИЯ

При этом исходный файл будет сохранён, к его имени (после расширения) будет добавлено «_original». Кстати, команда exiv2 перезаписывает существующий файл не делая резервную копию.

При использовании команды exiftool новый файл заменяет исходный (хотя сохраняет его резервную копию), с помощью опции -o вы можете явно указать место и имя нового файла:

exiftool -gps:all= -o НОВЫЙ_ФАЙЛ.jpg ИСХОДНЫЙ_ФАЙЛ.jpg

Для проверки метаданных GPS после удаления используйте команду:

exiftool -G ФОТОГРАФИЯ | grep -i 'gps'

Как удалить только дату и время создания

Для удаления меток времени используйте команду вида:

exiftool -Date:all= -Time:all= ФОТОГРАФИЯ

Для проверки имеющихся метаданных связанных со временем и датой:

exiftool -G ФОТОГРАФИЯ | grep -i -E '(date)|(time)'

Пример метаданных до удаления:

[File]          File Modification Date/Time     : 2020:12:13 11:37:12+03:00
[File]          File Access Date/Time           : 2020:12:13 11:45:29+03:00
[File]          File Inode Change Date/Time     : 2020:12:13 11:37:12+03:00
[EXIF]          Modify Date                     : 2019:11:10 16:17:30
[EXIF]          Exposure Time                   : 1/1439
[EXIF]          Date/Time Original              : 2019:11:10 16:17:30
[EXIF]          Create Date                     : 2019:11:10 16:17:30
[EXIF]          Sub Sec Time                    : 0980
[EXIF]          Sub Sec Time Original           : 0980
[EXIF]          Sub Sec Time Digitized          : 0980
[EXIF]          GPS Time Stamp                  : 09:17:30
[EXIF]          GPS Date Stamp                  : 2019:11:10
[MakerNotes]    Time Stamp                      : 2019:11:10 12:17:31+03:00
[Composite]     Create Date                     : 2019:11:10 16:17:30.0980
[Composite]     Date/Time Original              : 2019:11:10 16:17:30.0980
[Composite]     Modify Date                     : 2019:11:10 16:17:30.0980
[Composite]     GPS Date/Time                   : 2019:11:10 09:17:30Z

Пример метаданных после удаления:

[File]          File Modification Date/Time     : 2020:12:13 11:46:58+03:00
[File]          File Access Date/Time           : 2020:12:13 11:46:58+03:00
[File]          File Inode Change Date/Time     : 2020:12:13 11:46:58+03:00
[EXIF]          Exposure Time                   : 1/1439
[MakerNotes]    Time Stamp                      : 2019:11:10 12:17:31+03:00

File — это отметки времени в файловой системе. Они меняются вместе с изменением файла, но их можно установить на произвольные (подробности в статье «Время создания, доступа и изменения файла: что это, как их узнать и изменить. Как найти файлы по их времени создания, изменения или последнему открытию».

Также время создания файла сохранилось в MakerNotes. Как правило, теги MakerNotes считаются «Permanent» (постоянными) и могут редактироваться, но не могут быть созданы или удалены по отдельности. Это позволяет избежать многих потенциальных проблем, включая неизбежные проблемы совместимости с программным обеспечением OEM, которое может быть очень негибким в отношении информации, которую он ожидает найти в примечаниях производителя.

То есть мы можем удалить дату создания из MakerNotes, но только если удалим MakerNotes целиком. Для этого можно использовать команду вида:

exiftool -Date:all= -Time:all= -MakerNotes:all= ФОТОГРАФИЯ

Например:

exiftool -Date:all= -Time:all= -MakerNotes:all= 20191110_161731.jpg

Примечание: С помощью данной опции мне в моём тестовом изображении так и не удалось удалить Time Stamp из MakerNotes (хотя все другие теги в этой группе удалялись). Но у вас может не быть этой проблемы. Если сильно нужно, удалить Time Stamp из MakerNotes можно было бы по следующему алгоритму: 1) копирование Exif метаданных в файл; 2) полное удаление всех метаданных из файла (с помощью «-all=» удалялся в том числе и Time Stamp из MakerNotes); 3) восстановление Exif метаданных из файла.

Как удалить только информацию о камере

Используйте команду вида:

exiftool -Make= -Model= -Software= -makernotes:all= ФОТОГРАФИЯ

Например:

exiftool -Make= -Model= -Software= -makernotes:all= 20191110_161731.jpg

Для проверки метаданных связанных с моделью:

exiftool -G ФОТОГРАФИЯ | grep -i -E '(Make )|(Model)|(Software)|(Device)'

Пример вывода:

[EXIF]          Make                            : samsung
[EXIF]          Camera Model Name               : SM-J710F
[EXIF]          Software                        : J710FXXU6CSE1
[MakerNotes]    Device Type                     : Cell Phone

После применения команды по очистке, при проверке вывод должен быть пустым.

Как удалить только примечание

Для удаления только примечания выполните команду вида:

exiftool -UserComment= ФОТОГРАФИЯ

Например:

exiftool -UserComment= 20191110_161731.jpg

Команда для проверки примечания в метаданных:

exiftool -G ФОТОГРАФИЯ | grep -i -E 'Comment'

Как изменить GPS координаты в фотографии

Изменение места съёмки в Geotag

В Geotag кликните на колонку «Широта» или «Долгота» снимка, для которого вы хотите изменить координаты и отредактируйте координаты для выбранной фотографии. Обратите внимание, что десятичная точка может быть как точкой, так и запятой (зависит от языка ОС). То есть если 55.7520263 и 37.6153107 было округлено до 55 и 37, то тогда введите 55,7520263 и 37,6153107 и наоборот.


Когда всё будет готово, кликните правой кнопкой мыши по изображению и выберите «Сохранить новые места».

Изменение места съёмки в ExifTool

В ExifTool место съёмки меняется следующими тегами:

  • -GPSLatitude — широта, знак числа неважен
  • -GPSLongitude — долгота, знак числа неважен
  • -GPSLatitudeRef N или S, то есть север или юг
  • -GPSLongitudeRef E или W, то есть восток или запад

Необязательно использовать сразу все теги.

Общая форма команды:

exiftool -GPSLatitude='ДЕСЯТИЧНОЕ.ЧИСЛО' -GPSLongitude='ДЕСЯТИЧНОЕ.ЧИСЛО' -GPSLatitudeRef='N|S' -GPSLongitudeRef='E|W' ФОТОГРАФИЯ

Пример:

exiftool -GPSLatitude='55.7520263' -GPSLongitude='37.6153107' -GPSLatitudeRef='S' -GPSLongitudeRef='W' ФОТОГРАФИЯ

Для проверки используйте команду (опция -e нужна чтобы не создавались композитные теги):

exiftool -G -e ФОТОГРАФИЯ | grep -i -E 'gps'

Изменение места съёмки в Exiv2

Эта программа принимает координаты в качестве трёх рациональных чисел. Три — это градусы, минуты, секунды. Рациональные — значит укажите дополнительно «/1».

Следующий пример устанавливает широту на 4 градуса 15 минут и 33 секунды северной широты. Стандарт Exif предусматривает, что тег GPSLatitude состоит из трёх рациональных чисел для градусов, минут и секунд широты, а GPSLatitudeRef содержит либо «N», либо «S» для северной или южной широты соответственно.

exiv2 -M"set Exif.GPSInfo.GPSLatitude 4/1 15/1 33/1" -M"set Exif.GPSInfo.GPSLatitudeRef N" image.jpg

Аналогичным способом устанавливается долгота.

Список тегов:

  • Exif.GPSInfo.GPSLatitude
  • Exif.GPSInfo.GPSLatitudeRef
  • Exif.GPSInfo.GPSLongitude
  • Exif.GPSInfo.GPSLongitudeRef

Как изменить дату съёмки в метаданных фотографии

Изменение даты съёмки в Geotag

В Geotag для снимков можно увидеть:

  • Время GPS
  • Смещение (часовой пояс)
  • Время камеры

Для изменения кликните правой кнопкой мыши по снимку, время создания которого вы хотите изменить, и выберите «Установленное время снимка».

Затем выберите желаемую дату и время, а также часовой пояс.

Но у меня эта функция сработала как-то странно — изменилось только «Время GPS», как поменять «Время камеры» мне непонятно.

Изменение даты съёмки в ExifTool

Название тегов, которые я нашёл в своей тестовой фотографии (то есть вполне возможно, что это неполный список):

  • DateTime
  • DateTimeOriginal
  • DateTimeDigitized
  • ModifyDate
  • CreateDate
  • GPSTimeStamp
  • GPSDateStamp

Для изменения тегов времени, сначала посмотрите, какие теги, связанные с датой и временем, присутствуют в вашем снимке, например, следующей командой:

exiftool -G ФОТОГРАФИЯ | grep -i -E '(date)|(time)'

Также отметка времени может присутствовать в MakerNotes — там её изменить нельзя, можно только полностью удалить MakerNotes (опция «-MakerNotes:all=»).

Не забывайте, что кроме как в метаинформации, отметки времени присутствуют в свойствах файла.

В ExifTool вы можете устанавливать новую дату и время, например:

exiftool -DateTimeOriginal='2021:04:02 07:41:12' 20191110_161731.jpg
exiftool -GPSDateStamp='2039:04:02' -GPSTimeStamp='22:41:12' 20191110_161731.jpg

Причём, если данные невозможные, например, 29-й час, то они всё равно записываются:

exiftool -GPSDateStamp='2039:04:02' -GPSTimeStamp='29:41:12' 20191110_161731.jpg

Можно использовать «+=» и «-=» для прибавления или уменьшения даты и времени.

Следующая команда уточнит исходную дату/время для всех изображений в каталоге «ДИРЕКТОРИЯ», вычтя один час 30 минут. Это эквивалентно «-DateTimeOriginal-=1.5»:

exiftool -DateTimeOriginal-='0:0:0 1:30:0' ДИРЕКТОРИЯ

Добавить 3 часа к отметкам времени CreateDate и ModifyDate двух изображений.

exiftool -createdate+=3 -modifydate+=3 a.jpg b.jpg

Изменение даты съёмки в Exiv2

Название тегов с отметками времени:

  • Exif.Image.DateTime
  • Exif.Image.DateTimeOriginal
  • Exif.Photo.DateTimeOriginal
  • Exif.Photo.DateTimeDigitized
  • Exif.GPSInfo.GPSTimeStamp
  • Exif.GPSInfo.GPSDateStamp

Пример команды, меняющей сразу три тега:

exiv2 -M"set Exif.Image.DateTime 2021:04:02 07:41:12" -M"set Exif.Photo.DateTimeOriginal 2021:04:02 07:41:12" -M"set Exif.Photo.DateTimeDigitized 2021:04:02 07:41:12" 20191110_161731.jpg

Следующие опции позволяют прибавлять и убавлять годы/месяцы/дни/часы/минуты/секунды.

-a ВРЕМЯ

  • Изменение времени, формат [-]HH[:MM[:SS]].

-Y ГОД

Корректировка времени на положительное или отрицательное число лет.

-O МЕСЯЦ

Корректировка времени на положительное или отрицательное количество месяцев.

-D ДЕНЬ

Корректировка времени на положительное или отрицательное количество дней.

Чтобы было понятно, рассмотрим пару примеров.

Прибавление двух лет к дате:

exiv2 -Y 2 20191110_161731.jpg

Убавление десяти лет, прибавление двух месяцев и десяти дней, а также убавление трёх часов:

exiv2 -Y -10 -O 02 -D 10 -a '-03:00:0' 20191110_161731.jpg

Как изменить примечания в метаданных файла фотографии

Изменение примечаний в Geotag

Примечания можно изменить в таблице изображений. Строка из «Description» будет помещена в тег Exif.Photo.UserComment.

Если это Ascii строка (английские буквы), то большинство программ смогут её показывать. Можно использовать буквы национальных алфавитов и они будут правильно сохранены в кодировке UTF8, но не все простые программы смогут её показать.

Теги из других колонок таблицы сохраняются в группу метаданных IPTC (если её нет, то она создаётся).

Ещё один тег, который не используется в Geotag, но который вы можете устанавливать или изменять в ExifTool и Exiv2: (Информация о местности): Exif.GPSInfo.GPSAreaInformation.

Когда всё будет готово, кликните правой кнопкой мыши по изображению и выберите «Сохранить новые места» (этот пункт используется для любых сохранений — мест, комментариев, времени.

Изменение примечаний в ExifTool

Комментарий в Exif меняется следующей командой:

exiftool -UserComment='КОММЕНТАРИЙ ЗДЕСЬ' ФОТОГРАФИЯ

Само собой, если хотите, для хранения примечаний о географических местах можете использовать указанные выше теги IPTC.

Название тегов IPTC для хранения примечаний о местоположении:

  • LocationName
  • Sub-location
  • City
  • Province-State
  • Country-PrimaryLocationCode
  • Country-PrimaryLocationName

Изменение примечаний в Exiv2

Следующая команда устанавливает комментарий Exif на строку ASCII:

exiv2 -M"set Exif.Photo.UserComment charset=Ascii New Exif comment" ФОТОГРАФИЯ

Пример:

exiv2 -M"set Exif.Photo.UserComment charset=Ascii Made for HackWare.ru" 20191110_161731.jpg

На самом деле «charset=Ascii» можно убрать, обычно программы правильно распознают кодировку, особенно Ascii.

Само собой, если хотите, для хранения примечаний о географических местах можете использовать теги IPTC.

Название тегов IPTC для хранения примечаний о местоположении:

  • Iptc.Application2.LocationName
  • Iptc.Application2.SubLocation
  • Iptc.Application2.City
  • Iptc.Application2.ProvinceState
  • Iptc.Application2.CountryName

Например:

exiv2 -M"set Iptc.Application2.LocationName Yebenya" 20191110_161731.jpg

Как поменять модель камеры в метаданных снимка

С этой задачей справится только программа ExifTool.

Используйте команду вида:

exiftool -Make='ПРОИЗВОДИТЕЛЬ' -Model='МОДЕЛЬ' -Software='ПРОГ.ОБЕСПЕЧЕНИЕ' -makernotes:all= ФОТОГРАФИЯ

Например:

exiftool -Make='samsung' -Model='Galaxy s40 Ultra' -Software='G988BXXU5CTKG' -makernotes:all= 20191110_161731.jpg

Для проверки метаданных связанных с моделью:

exiftool -G ФОТОГРАФИЯ | grep -i -E '(Make )|(Model)|(Software)|(Device)'

Как сохранить метаданные в отдельный файл

Вы можете сохранить все метаданные или отдельные теги в файл. Для этого используется опция -TagsFromFile:

Для сохранения всех метаданных в файл запустите команду вида:

exiftool -a -TagsFromFile ИЗОБРАЖЕНИЕ МЕТАФАЙЛ

Следующая команда скопирует всю метаинформацию из снимка «a.jpg» в файл данных XMP. Если файл данных XMP «out.xmp» уже существует, он будет обновлён с новой информацией. В противном случае будет создан файл данных XMP. Таким образом можно создавать файлы, содержащие только метаданные (файлы, содержащие изображения, можно редактировать, но нельзя создавать).

exiftool -Tagsfromfile a.jpg out.xmp

Чтобы записать метаданные из файла в изображение нужно поменять местами файлы, то есть получится следующая команда:

exiftool -a -TagsFromFile МЕТАФАЙЛ ИЗОБРАЖЕНИЕ

Вы по-прежнему можете использовать имена тегов и групп тегов для сохранения только тех данных, которые вам нужны.

Копирование метаданных между файлами

Последующие примеры просто раскрывают возможности опции -TagsFromFile и гибкость exiftool.

Скопировать значения всех доступных для записи тегов из «src.jpg» в «dst.jpg», сохранив исходные группы тегов.

exiftool -TagsFromFile src.jpg -all:all dst.jpg

Удалить всю метаинформацию из изображения «dst.jpg», затем скопировать теги EXIF из «src.jpg».

exiftool -all= -tagsfromfile src.jpg -exif:all dst.jpg

Скопировать ICC_Profile из одного изображения в другое.

exiftool -TagsFromFile src.jpg -icc_profile dst.jpg

Скопировать всю метаинформацию из «a.jpg» в «b.jpg», удалив всю информацию XMP и эскиз изображения из места назначения.

exiftool -tagsFromFile a.jpg -XMP:All= -ThumbnailImage= -m b.jpg

Скопировать заголовок с одного изображения на другое и установить новое имя автора.

exiftool -TagsFromFile src.jpg -title -author=Phil dst.jpg

Скопировать ISO из одного изображения и комментарий из другого изображения в целевое изображение.

exiftool -TagsFromFile a.jpg -ISO -TagsFromFile b.jpg -comment dst.jpg

Скопировать только информацию EXIF из одного изображения в другое, за исключением тегов SubIFD.

exiftool -tagsfromfile src.jpg -exif:all --subifd:all dst.jpg

Обработка большого количества фотографий

Вы можете обрабатывать сразу большое количество файлов.

Данный пример удаляет GPS теги во всех изображениях JPG в текущем каталоге, записывая изменённые изображения в новый каталог.

exiftool -gps:all= -o НОВАЯ_ДИРЕКТОРИЯ -ext jpg .

В этой команде:

  • . (точка) означает все файлы в текущем каталоге
  • -ext jpg означает обрабатывать только файлы с расширением jpg
  • -o НОВАЯ_ДИРЕКТОРИЯ указывает папку для сохранения полученных новых файлов

Пример подмены метаданных

Все показанные действия по удалению и редактированию метаданных можно комбинировать между собой.

В качестве примера, я покажу, как сделал файл, ссылка на который дана в начале статьи.

Сохраняем имеющиеся метаданные в файл meta.exif. Это сделано для того, чтобы полностью удалить MakerNotes с меткой времени — у меня это удаётся только при удалении вообще всех метаданных. Но я хочу сохранить все теги Exif, чтобы получившийся в конечном счёте набор метаданных выглядел натуральнее, в них будет много тегов с условиями съёмки и прочем, что неважно для нас.

exiftool -a -TagsFromFile Kremlin.jpg meta.exif

К этой команде можно добавить опцию «-exif:all», чтобы копировались только метаданные Exif.

Кстати, можно посмотреть, какие именно теги присутствуют в файле, который является хранителем метаданных:

exiftool -G -e meta.exif

Удаляем все метаданные из файла (из-за проблемы с MakerNotes):

exiftool -all= Kremlin.jpg

Проверяем:

exiftool -G -e Kremlin.jpg

Восстанавливаем метаданные:

exiftool -a -TagsFromFile meta.exif Kremlin.jpg

Устанавливаем новые значения для ряда тегов:

exiftool -GPSLatitude='55.7520263' -GPSLongitude='37.6153107' -GPSLatitudeRef='N' -GPSLongitudeRef='E' -DateTime='2038:07:02 09:41:12' -DateTimeOriginal='2038:07:02 09:41:12' -DateTimeDigitized='2038:07:02 09:41:12' -ModifyDate='2038:07:02 09:41:12' -CreateDate='2038:07:02 09:41:12' -GPSTimeStamp='09:41:12' -GPSDateStamp='2038:07:02' -UserComment='Holidays' -LocationName='Kremlin' -Sub-location='Downtown Area' -City='Moscow' -Province-State='MSK' -Country-PrimaryLocationName='Russia' -Make='samsung' -Model='Galaxy s40 Ultra' -Software='G988BXXU5CTKG' Kremlin.jpg

Проверяем:

exiftool -G -e Kremlin.jpg

Появилась группы XMP и MakerNotes (но уже без метки времени!), поэтому удаляем их следующей командой:

exiftool -XMP= -MakerNotes= Kremlin.jpg

Меняем время создания, последнего изменения и доступа в свойствах файла (они, например, сохраняются при передаче файлов в архивах):

touch -t '203807020941.12' Kremlin.jpg

Связанная статья: Время создания, доступа и изменения файла: что это, как их узнать и изменить. Как найти файлы по их времени создания, изменения или последнему открытию

Упаковываем в архив:

zip Kremlin.zip Kremlin.jpg

Ссылка на файл: https://hackware.ru/files/Kremlin.zip


Рекомендуется Вам:

5 комментариев to Руководство по GPS метаданным в фотографиях (ч. 2): Как изменить GPS и другие метаданные в фотографии

  1. Спасибо за подробные материалы по GPS-тегам в фото.

    Не подскажите как решить подобную задачу:

    есть исходный каталог с "сырыми" фото и другой каталог с обработанными фото (HDR и т.п.). Как перенести теги с gps и исходными датами/времен из исходной каталога в каталог с частью фото, которые были обработаны?

     

    • Alexey:

      HDR — это обычный JPG составленный из нескольких изображений, как про это говориться, например, здесь или это формат файла Radiance HDR (RGBE)?

      Если первое, то работа ничем не отличается от любых JPG. Если второе, то там EXIF не поддерживается вовсе, а родные метаданные можно только читать.

      Сырые, это JPG до нужной обработки или это RAW?

      Видели ли вы описание опции -TagsFromFile в статье и если да, то какие именно затруднения она у вас вызывает?

      Правильно ли я понимаю, что для каждого необработанного файла нужно передать метаданные в определённый обработанный которые коррелируют, например, по именам? Или одинаковые метаданные во все?

      • 1/ HDR = в данном случае просто "псевдо" улучшение и обработка исходного файла *.jpg через сторонний софт, которое приводит к изменению даты и времени файла и частичному изменению EXIF исходного файла

        2/ как раз в применении -TagsFromFile в том, что обработанные файлы .jpg после обработки храняться на другом диске и в другом каталоге с такими же именами, но без некоторых неудачных файлов, которые удалены после ручного просмотра

        • Alexey:

          Начните с того, что сделайте резервную копию обеих директорий.

          Следующая команда должна сделать то, что нужно:

          exiftool -TagsFromFile /ДИРЕКТОРИЯ/ИСХОДНЫХ/ФАЙЛОВ/%f.%e /ДИРЕКТОРИЯ/ОБРАБОТАННЫХ/ФАЙЛОВ/

          К примеру, моя тестовая команда:

          exiftool -TagsFromFile /mnt/disk_d/Share/TestPicsOrig/%f.%e /mnt/disk_d/Share/TestPics/

          выполнила следующее:

          • для каждого изображения из папки /mnt/disk_d/Share/TestPics/ была найдена пара в папке /mnt/disk_d/Share/TestPicsOrig/ с точно таким же именем и расширением.
          • затем из изображения в папке /mnt/disk_d/Share/TestPicsOrig/ были взяты метаданные и записаны в изображение в папке /mnt/disk_d/Share/TestPics/
          • для всех файлов, в которые были внесены изменения, в папке /mnt/disk_d/Share/TestPics/ были созданы резервные копии, имена которых оканчиваются на «_original».
  2. Игорь:

    Спасибо! Очень интересная статья. Мне как раз сейчас требуется изменить геолокацию на снимках.

    Интересно, а информация о том, что проводились изменения никуда не записывается в этом же файле? :))

Добавить комментарий для Just J0ker Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *