Вопрос или проблема
Я только что это посмотрел. Решил поделиться здесь для будущей справки.
Установите exiftool:
sudo apt-get install libimage-exiftool-perl
Чтобы прочитать метаданные фотографии:
exiftool /tmp/my_photo.jpg
Чтобы стереть метаданные фотографии:
exiftool -all= /tmp/my_photo.jpg
До:
ExifTool Version Number : 8.60
File Name : my_photo.jpg
Directory : /tmp
File Size : 3.0 MB
File Modification Date/Time : 2013:02:24 12:08:10-08:00
File Permissions : rw-rw-r--
File Type : JPEG
MIME Type : image/jpeg
Exif Byte Order : Big-endian (Motorola, MM)
Orientation : Unknown (0)
Y Cb Cr Positioning : Centered
X Resolution : 72
Y Resolution : 72
Resolution Unit : inches
Modify Date : 2013:02:24 11:25:27
Make : Samsung
Camera Model Name : Galaxy Nexus
Exif Version : 0220
Flashpix Version :
Color Space : sRGB
Components Configuration : Y, Cb, Cr, -
Compressed Bits Per Pixel : 0
Exif Image Width : 1944
Exif Image Height : 2592
Date/Time Original : 2013:02:24 11:25:27
Create Date : 2013:02:24 11:25:27
Exposure Time : 1/354
F Number : 2.8
Exposure Program : Aperture-priority AE
ISO : 50, 0, 0
Shutter Speed Value : 1/353
Aperture Value : 2.6
Brightness Value : 0
Exposure Compensation : 0
Max Aperture Value : 2.6
Subject Distance : 0 m
Metering Mode : Multi-spot
Light Source : Daylight
Flash : No Flash
Focal Length : 3.4 mm
Flash Energy : 0
Exposure Index : undef
Sensing Method : One-chip color area
Scene Type : Directly photographed
Custom Rendered : Custom
Exposure Mode : Auto
White Balance : Auto
Digital Zoom Ratio : 1
Scene Capture Type : Standard
Contrast : Normal
Saturation : Normal
Sharpness : Normal
Subject Distance Range : Unknown
Image Unique ID : OAEL01
GPS Time Stamp : 19:25:27
GPS Date Stamp : 2013:02:24
Compression : JPEG (old-style)
Thumbnail Offset : 2143
Thumbnail Length : 10941
Image Width : 1944
Image Height : 2592
Encoding Process : Baseline DCT, Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:2:0 (2 2)
Aperture : 2.8
GPS Date/Time : 2013:02:24 19:25:27Z
Image Size : 1944x2592
Shutter Speed : 1/354
Thumbnail Image : (Binary data 10941 bytes, use -b option to extract)
Focal Length : 3.4 mm
Light Value : 12.4
После:
ExifTool Version Number : 8.60
File Name : my_photo.jpg
Directory : /tmp
File Size : 2.9 MB
File Modification Date/Time : 2013:02:24 12:21:39-08:00
File Permissions : rw-rw-r--
File Type : JPEG
MIME Type : image/jpeg
Image Width : 1944
Image Height : 2592
Encoding Process : Baseline DCT, Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:2:0 (2 2)
Image Size : 1944x2592
Ссылки:
ImageMagick
Вместо Exiftool, для обработки Exif метаданных (также IPTC, XMP и ICC метаданные) я нашел ImageMagick (установите его с помощью sudo apt install imagemagick
) более полезным, а команды легче запоминаются.
С версии IMv7 magick identify/mogrify/...
используется вместо [1].
Чтобы прочитать
identify -verbose image.jpg | grep exif
Чтобы удалить
С установленным пакетом imagemagick
вы можете сделать это (не только для JPEG):
mogrify -strip *.jpg # Опционально: -verbose
Из руководства:
-strip
удаляет из изображения любые профили, комментарии или эти блоки PNG: bKGD, cHRM, EXIF, gAMA, iCCP, iTXt, sRGB, tEXt, zCCP, zTXt, date.
Так как вы потеряете метаданные о ориентации, возможно, вам захочется сначала выполнить mogrify -auto-orient image.jpg
.
Насколько я знаю, единственное отличие от exiftool в том, что mogrify
не удалит эти метаданные:
- JFIF Версия
- Единица разрешения
- X Разрешение
- Y Разрешение
Что может быть полезно. По сравнению с diff -y <(exiftool wMogrify.jpg) <(exiftool wExiftool.jpg)
Удаление EXIF данных не одно и то же, что анонимизация: -strip
будет снова сжимать изображение. Это может быть хорошо: То же программное обеспечение, которое делает фотографию (или другую), может скрывать конфиденциальную информацию (которая может быть зашифрована) внутри обычных данных изображения (стеганография). Я не уверен, что повторное сжатие всегда удалит все (вероятно, нет). Чтобы избежать этого повторного сжатия, вы можете использовать jpegtran:
jpegtran -copy none image.jpg > newimage.jpg
Также, чтобы избежать потери цветового профиля (ICC метаданные, которые обеспечивают более насыщенные цвета[нужна ссылка]):
convert image.jpg profile.icm && convert image.jpg -strip -profile profile.icm newimage.jpg
Вы можете задать себе вопрос, являются ли эти затраты заметными или актуальными в вашем случае.
Еще один инструмент по стеганографии на изображениях – это steghide.
Другие инструменты и примечания
- mat2 (инструмент для анонимизации метаданных версии 2): Удаляет метаданные из многих форматов (
--list
). Рекомендуется privacyguides.org. - Альтернативы:
jhead
(только для JPEG) и exiv2 (man; предложено на Википедии). - Metadata Cleaner: Десктопное приложение для просмотра и очистки метаданных в файлах (не только изображениях).
- Если вы предпочитаете Exiftool, вам может оказаться полезным создание псевдонима для
exiftool -all= *.jpg && rm *original
, или с опцией-overwrite_original
. Чтобы удалить только GPS данные, используйтеexiftool -gps:all= -xmp:geotag= *.jpg
. Используйте обновленную версию: CVE-2021-22204. - Формат WebP:
webp
пакет предоставляетwebpmux
команду, которая управляет XMP/EXIF метаданными и ICC профилем. exifprobe
/exifgrep
: исследует и сообщает структуру и содержание метаданных файлов изображений камеры- Для Android? Scrambled Exif, доступно на F-Droid (и Google Play).
Смотрите также
Чтобы удалить, а затем изменить одно поле, мы можем использовать эту команду:
exiftool -Copyright= IMG_3357.jpg
exiftool -Copyright=LinuxSlaves IMG_3357.jpg
Я хотел бы добавить mat2
, который поддерживает не только изображения. Он рекомендован сообществом privacyguides.org (ранее известным как privacytools.io).
MAT2 — это бесплатное программное обеспечение, которое позволяет удалять метаданные из файлов изображений, аудио, торрент- и документов. Оно предоставляет как инструмент командной строки, так и графический интерфейс через расширение для Nautilus, стандартного файлового менеджера GNOME.
и
mat2 — это инструмент удаления метаданных, поддерживающий широкий спектр распространенных форматов файлов, написанный на python3: в его основе лежит библиотека, используемая как в одноименном интерфейсе командной строки, так и в нескольких расширениях файлового менеджера.
sudo apt install mat2
Очистка метаданных на месте
mat2 --inplace xxx.mp4
mat2 --inplace xxx.png
Существует множество инструментов для этого, как и другие упоминали. Еще один, который я нашел на своей системе, это exiv2
.
- Установить:
sudo apt install exiv2
- Просмотреть:
exiv2 myimage.jpg
- Удалить:
exiv2 rm myimage.jpg
Дополнительные опции перечислены в странице man.
Ответ или решение
Чтение и удаление метаданных (EXIF) из фотографий с помощью командной строки
Работа с метаданными изображений может быть необходима для обеспечения конфиденциальности или просто для управления данными, связанными с вашими фотографиями. В этом руководстве мы рассмотрим несколько инструментов, которые позволяют читать и удалять EXIF-данные из изображений с использованием командной строки.
Установка утилит
Для начала необходимо установить необходимые инструменты. Самыми популярными являются ExifTool, ImageMagick, и MAT2.
-
ExifTool
- Установите ExifTool, используя следующую команду:
sudo apt-get install libimage-exiftool-perl
- Установите ExifTool, используя следующую команду:
-
ImageMagick
- Установите ImageMagick:
sudo apt install imagemagick
- Установите ImageMagick:
-
MAT2
- Установите MAT2, который поддерживает удаление метаданных из различных типов файлов:
sudo apt install mat2
- Установите MAT2, который поддерживает удаление метаданных из различных типов файлов:
Чтение метаданных
Теперь, когда утилиты установлены, мы можем читать метаданные изображений.
-
ExifTool
- Для чтения метаданных используйте команду:
exiftool /путь/к/вашей/фотографии.jpg
- Для чтения метаданных используйте команду:
-
ImageMagick
- Для получения информации о метаданных используйте:
identify -verbose /путь/к/вашей/фотографии.jpg | grep exif
- Для получения информации о метаданных используйте:
-
MAT2
- Команда для просмотра метаданных будет:
mat2 /путь/к/вашей/фотографии.jpg
- Команда для просмотра метаданных будет:
Удаление метаданных
После того, как вы прочитали метаданные, возможно, вы захотите их удалить.
-
ExifTool
- Чтобы удалить все метаданные из фотографии, используйте:
exiftool -all= /путь/к/вашей/фотографии.jpg
- Если вы хотите переименовать оригинал, добавляя
-overwrite_original
, вы сможете избежать создания резервной копии:exiftool -all= -overwrite_original /путь/к/вашей/фотографии.jpg
- Чтобы удалить все метаданные из фотографии, используйте:
-
ImageMagick
- Удаление метаданных можно сделать с помощью следующей команды, которая удалит многие типы метаданных:
mogrify -strip /путь/к/вашей/фотографии.jpg
- Удаление метаданных можно сделать с помощью следующей команды, которая удалит многие типы метаданных:
-
MAT2
- Для удаления метаданных из изображения выполните:
mat2 --inplace /путь/к/вашей/фотографии.jpg
- Для удаления метаданных из изображения выполните:
-
exiv2
- Установить exiv2:
sudo apt install exiv2
- Просмотр метаданных:
exiv2 /путь/к/вашей/фотографии.jpg
- Удаление метаданных:
exiv2 rm /путь/к/вашей/фотографии.jpg
- Установить exiv2:
Примечания к использованию
- Рекомпрессия: Некоторые инструменты, такие как ImageMagick, могут изменять изображение, рекомпрессируя его, что может привести к потере качества. Если это важно, стоит использовать решения, которые не производят рекомпрессию, как
jpegtran
. - Анонизирование: Удаление метаданных не всегда является полным анонизированием. Будьте внимательны, чтобы не оставить в изображении важные данные.
- Проверка: Рекомендуется после удаления метаданных проверить изображение с помощью тех же инструментов, чтобы убедиться, что данные действительно были удалены.
Заключение
Чтение и удаление EXIF-данных из изображений с помощью командной строки позволяет эффективно управлять конфиденциальностью ваших данных. Используя инструменты, упомянутые выше, вы можете получить контроль над тем, какую информацию вы хотите поделиться. Экспериментируйте с различными утилитами и выбирайте те, которые подходят именно вам!