Большинство изображений содержат данные Exif (Exchangeable image file format), которые включают некоторые важные данные, такие как дата и время съемки изображения, устройство, место и так далее.
Хотя эти данные могут быть полезны в различных сценариях, они также несут угрозу конфиденциальности, и в этом руководстве я покажу вам, как удалить данные Exif из изображений с помощью командной строки Linux.
Использование ExifTool
Итак, если вы ищете способ удаления данных Exif, который не применяет сжатие изображений, то это должно быть вашим первым предпочтением.
Итак, давайте начнем с установки различных дистрибутивов:
Для производных Debian:
1 | sudo apt install libimage-exiftool-perl |
Для дистрибутивов на базе RHEL:
1 | sudo dnf install perl-Image-ExifTool |
Для дистрибутивов на базе Arch:
1 | sudo pacman -S perl-image-exiftool |
ExifTool также можно использовать для просмотра метаданных, связанных с изображением. Чтобы перечислить все детали, необходимо использовать приведенный синтаксис команды:
1 | exiftool [изображение.jpg] |
Удаление метаданных из изображения
Существует разница между метаданными изображения и данными exif. Метаданные включают такие сведения, как создатель файла, назначение файла и комментарии, если таковые имеются.
В то время как данные exif включают только сведения о цифровом изображении, такие как размер, местоположение, программное обеспечение, использованное для создания/изменения и т.д.
Удаление метаданных с изображения также приведет к удалению данных exif.
Чтобы удалить метаданные, необходимо использовать опцию -the all. Будет создана копия изображения без метаданных, а исходный файл будет переименован с добавлением "_original" в конец файла.
1 | exiftool -all=[изображение.jpg] |
Что делать, если вы хотите удалить метаданные изображения без создания новой копии и хотите изменить исходное изображение? Используйте опцию -overwrite_original.
1 | exiftool -overwrite_original -all=[изображение.jpg] |
Удаление метаданных из всего каталога
Эта команда пригодится вам, если вы хотите удалить метаданные целой директории, содержащей изображения. Сейчас я покажу вам, как это сделать.
Чтобы удалить метаданные из целой директории, необходимо использовать опцию -recurse, которая даст ExifTool команду пройти по поддиректориям.
Он создаст копию оригинального файла и удалит метаданные из скопированного файла, а оригинальный файл будет переименован с добавлением "_original" в конце.
1 | exiftool -recurse -all=[путь каталога] |
Удаление только данных Exif
Итак, если вы ищете способ удаления только данных exif, вам нужно лишь немного изменить команду и все.
Чтобы удалить только данные exif, нужно использовать опцию -EXIF следующим образом:
1 | exiftool -EXIF=[изображение.jpg] |
Использование ImageMagick
В отличие от инструмента exif, который был создан для удаления метаданных и exif-данных, ImageMagick предназначен не только для извлечения данных изображения, поэтому у вас не будет такого количества опций, как я показал выше.
Меньшее количество опций не влияет на его функциональность и делает свою работу достаточно хорошо, и это идеальный вариант для тех, кто просто хочет удалить exif-данные самым простым способом.
Итак, давайте перейдем к установке ImageMagick.
Для производных Debian:
1 | sudo apt-get install imagemagick |
Для дистрибутивов на базе RHEL:
1 | sudo dnf install imagemagick |
Для дистрибутивов на базе Arch:
1 | sudo pacman -S imagemagick |
Как только вы закончите установку, давайте посмотрим, как можно вывести список деталей изображения с помощью ImageMagick.
Чтобы вывести список exif-данных, необходимо следовать приведенному синтаксису команды:
1 | identify -format '%[EXIF:*]' [изображение.jpeg] |
Чтобы удалить данные exif, необходимо использовать опцию -strip в mogrify, как показано ниже:
1 | mogrify -strip [изображение.jpeg] |
После удаления exif-данных я выполню предыдущую команду, чтобы проверить, успешно ли я удалил exif-данные или нет.
1 | identify -format '%[EXIF:*]' [изображение.jpeg] |
Она не покажет никакого результата, так как нет данных, связанных с exif.
Аналогично, вы можете использовать эту команду для всего каталога. В отличие от первого метода, вы не можете просто указать путь к каталогу, это должен быть ваш текущий рабочий каталог.
Затем нужно применить данную команду:
1 | mogrify -strip * |