Как удалить метаданные из файлов изображений

Как удалить метаданные из файлов изображений

[ПРАВКА №1 от OP:Оказывается, на этот вопрос довольно хорошо ответил создатель/сопровождающий exiftool Фил Харви вдублирующая тема на форуме ExifTool]

[ПРАВКА №2 от OP:ОтЧасто задаваемые вопросы по ExifTool:ExifTool — этонетгарантированно полностью удаляет метаданные из файла при попытке удалить все метаданные.См. «Ограничения для авторов».]

Я хотел бы поискать на своих старых жестких дисках фотографии, которых нет на моем текущем резервном диске. Форматы включают jpg, png, tif и т. д., а также различные форматы raw (разные модели камер и производители).

Меня интересует только уникальность самого изображения, а не уникальность, обусловленная, скажем, различиями в значениях exif-тегов, наличием/отсутствием самого exif-тега, встроенными миниатюрами и т. д.

Хотя я и не ожидаю обнаружить какие-либо повреждения/порчу данных между разными копиями в остальном идентичных изображений, я хотел бы это обнаружить, а также различия, вызванные изменением размера и цвета.

[Правка №3 от OP:Для пояснения: небольшой процент ложных срабатываний допустим (файл считается уникальным, хотя на самом деле это не так), а ложные срабатывания крайне нежелательны (файл ошибочно считается дубликатом).]

Мой план состоит в том, чтобы определить уникальность на основе md5sums после удаления всех метаданных.

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

Будет exiftool -all= <filename>достаточно?

решение1

Сimagemagickпакет ине только для JPEGВы можете просто:

mogrify -strip ./*.jpg

Это ./делается для того, чтобы избежать проблем с именами файлов, начинающимися с «-».

Отруководство:

-strip удалите из изображения все профили, комментарии или следующие фрагменты PNG: bKGD,cHRM,EXIF,gAMA,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date.

Многодополнительная информация и предостереженияздесь.

Это похоже на @grochmal, но гораздо понятнее и проще.

решение2

jheadимеет возможность удалять не-изображения метаданных из файлов JPEG. На странице руководства говорится:

-dc

Удалить поле комментария из заголовка JPEG. Обратите внимание, что комментарий не является частью заголовка Exif.

-de

Полностью удалить заголовок Exif. Оставить другие разделы метаданных нетронутыми.

-di

Удалить раздел IPTC, если он есть. Оставить другие разделы метаданных нетронутыми.

-dx

Удалить раздел XMP, если он есть. Оставить другие разделы метаданных нетронутыми.

-du

Удалите разделы jpeg, которые не являются Exif, не комментируются и иным образом не влияют на изображение, например, данные, которые Photoshop может оставить на изображении.

-purejpg

Удалить все разделы JPEG, которые не нужны для рендеринга изображения. Удаляет все метаданные, которые могли остаться в изображении от различных приложений. Сочетание параметров -de -dcи -du .

решение3

Это немного устарело, но да, exiftool работает очень хорошо.

Показать метаданные

exiftool photo.jpg

Показать метаданные для всех файлов *.jpg

Примечание: расширениес учетом регистра.

exiftool -ext jpg

То же, что и выше, но с включением подкаталогов.

exiftool -r -ext jpg .

Удалить все метаданные

exiftool -all= -overwrite_original photo.jpg

Удалить все метаданные всех файлов *.jpg в текущем каталоге.

exiftool -all= -overwrite_original -ext jpg 

То же, что и выше, но с включением подкаталогов.

exiftool -all= -r -overwrite_original -ext jpg .

Удалить все метаданные GPS из файлов *.jpg в текущем каталоге.

exiftool -gps:all= *.jpg

решение4

Вместо MD5 используйте ImageMagick identifyдля печатиподписьфайлов изображений. Найдите файлы с одинаковой подписью. Файлы с одинаковой подписью имеют одинаковое содержимое.

Например, файлы a.png, b.pngи c.pngразличны, так как имеют разные контрольные суммы MD5:

$ md5sum *
a9ee60d8237a4b3f6cdd6e57c24b1caf  a.png
e8661c4fd7761984a74945e273fd4d09  b.png
21c808d62ff9c7675c1f9ca20d2f6578  c.png

Однако у них есть общая подпись:

$ identify -format "%#  %f\n" *
1c916332636b91704f212eec504c25383c90ed5d1659975a4a5895c48fe80ab8  a.png
1c916332636b91704f212eec504c25383c90ed5d1659975a4a5895c48fe80ab8  b.png
1c916332636b91704f212eec504c25383c90ed5d1659975a4a5895c48fe80ab8  c.png

Следовательно, они являются дубликатами.

Связанный контент