Я хочу удалить информацию EXIF (включая миниатюры, метаданные, информацию о камере ... все!) Из файлов JPEG, но я не хочу повторно сжимать ее, так как повторное сжатие JPEG ухудшит качество, а также обычно увеличивает размер файла.
Я ищу решение для Unix / Linux, даже лучше, если использовать командную строку. Если возможно, используйте ImageMagick (инструмент преобразования). Если это невозможно, подойдет небольшой скрипт Python, Perl, PHP (или другой распространенный язык в Linux).
Есть аналогичный вопрос, но связанный с .NET .
unix
imagemagick
jpeg
exif
Денилсон Са Майя
источник
источник
Ответы:
exiftool выполняет эту работу за меня, он написан на Perl, поэтому должен работать для вас при любых операциях
https://exiftool.org/
использование :
источник
sudo apt-get install libimage-exiftool-perl
brew install exiftool
-overwrite_original
переключатель, и программа не будет создавать файлы резервных копий.exiftool -EXIF= image.jpg
С помощью imagemagick:
источник
-strip
удаляет цветовые профили. Для тех, кто пытается удалить данные EXIF без потери информации профиля, см. Мое решение здесь: stackoverflow.com/a/17516878/1854499ImageMagick имеет параметр -strip , но он повторно сжимает изображение перед сохранением. Таким образом, этот параметр мне не нужен.
В этой теме на форуме ImageMagick объясняется, что в ImageMagick нет поддержки операций JPEG без потерь (всякий раз, когда это изменяется, отправляйте комментарий со ссылкой!), И предлагается использовать jpegtran (из libjpeg):
(Если вы не знаете обо мне , отвечая на мой собственный вопрос, прочтите это и это и это )
источник
jpegtran -copy none image.jpg newimage.jpg
-progressive
Это уменьшит размер.Вы также можете изучить Exiv2 - он очень быстрый (C ++ и без повторного сжатия), это командная строка, а также предоставляет библиотеку для манипуляций с EXIF, с которой вы можете ссылаться. Я не знаю, сколько дистрибутивов Linux делают его доступным, но в CentOS он сейчас доступен в базовом репозитории.
Использование:
источник
Я бы предложил
jhead
:Только 123 КБ на debian / ubuntu, повторное сжатие не выполняется. Обратите внимание, что он изменяет изображение, поэтому скопируйте оригинал, если он вам нужен.
источник
Недавно я реализовал этот проект на C. Код ниже делает следующее:
1) Получает текущую ориентацию изображения.
2) Удаляет все данные, содержащиеся в
APP1
(данные Exif) иAPP2
(данные Flashpix), путем очистки.3) воссоздает
APP1
создает маркер ориентации и устанавливает для него исходное значение.4) Находит первый
EOI
маркер (Конец изображения) и обрезает файл, если это необходимо.Прежде всего следует отметить следующие моменты:
1) Эта программа используется для моей камеры Nikon. Формат JPEG от Nikon добавляет что-то в самый конец каждого создаваемого файла. Они кодируют эти данные до конца файла изображения, создавая второй
EOI
маркер. Обычно графические программы читают до первогоEOI
найденного маркера. У Nikon есть информация, которую моя программа обрезает.2) Поскольку это формат Nikon, предполагается
big endian
порядок байтов. Если ваш файл изображения используетlittle endian
, необходимо внести некоторые изменения.3) При попытке использовать
ImageMagick
для удаления данных exif я заметил, что в итоге получил файл большего размера, чем тот, с которого я начал. Это наводит меня на мысль, чтоImagemagick
он кодирует данные, которые вы хотите удалить, и сохраняет их где-то еще в файле. Называйте меня старомодным, но когда я удаляю что-то из файла, я хочу, чтобы размер файла был меньше, если не того же размера. Любые другие результаты предполагают интеллектуальный анализ данных.А вот код:
Надеюсь, это кому-то поможет!
источник
Подсказка для удобства: если вы работаете в Windows, вы можете применить файл REG к реестру, чтобы установить запись в контекстном меню, чтобы вы могли легко удалить метаданные, щелкнув файл правой кнопкой мыши и выбрав команду.
Например (не забудьте отредактировать пути, чтобы указать, где исполняемые файлы установлены на вашем компьютере):
Для файлов JPEG, JPG, JPE, JFIF: команда « Удалить метаданные »
(с помощью ExifTool сохраняет исходный файл в качестве резервной копии)
exiftool -all= image.jpg
JPG-RemoveExif.reg
Для файлов PNG: команда « Преобразовать в уменьшенный PNG »
(с помощью ImageMagick изменяет данные, перезаписывая исходный файл)
convert -background none -strip -set filename:n "%t" image.png "%[filename:n].png"
PNG-Minify.reg
Связано: конвертировать PNG в ICO в контекстном меню .
источник
Мы использовали это для удаления данных о широте из файла TIFF:
exiv2 mo -M"del Exif.GPSInfo.GPSLatitude" IMG.TIF
где вы можете использоватьexiv2 -pa IMG.TIF
для перечисления всех метаданных.источник
Для полосы EXIF без потерь вы можете использовать libexif , который доступен с cygwin . Удалите EXIF и миниатюру, чтобы сделать изображение анонимным:
Перетащите
.bat
файл для использования с cygwin:источник
Другое программное обеспечение:
MetAbility QuickFix
"MetabilityQuickFix удаляет всю вашу личную информацию и данные о местоположении GPS со всех ваших фотографий одним щелчком мыши. Он безопасно удаляет все элементы метаданных из блоков данных Exif, Iptc и XMP из ваших файлов JPEG и автоматически делает резервные копии исходных файлов. "
Стриппер JPEG и PNG
«Инструмент для удаления / очистки / удаления ненужных метаданных (мусора) из файлов JPG / JPEG / JFIF и PNG. Качество изображения НЕ ВЛИЯЕТСЯ. Включает поддержку командной строки. Просто укажите папку или файл в командной строке (разрешены подстановочные знаки)»
источник
Если вы уже используете jpegoptim, вы также можете использовать его для удаления exif.
источник