Пакетное удаление информации exif

Ответы:

17

Другие предложения ExifTool хороши, если вы хотите удалить или изменить определенные разделы. Но если вы хотите полностью удалить все метаданные, используйте это (со страницы руководства):

   exiftool -all= dst.jpg
        Delete all meta information from an image.

Вы также можете использовать jhead с флагом -de:

   -de    Delete the Exif header entirely.  Leaves  other  metadata
          sections intact.

Обратите внимание, что в обоих случаях EXIF ​​является только одним типом метаданных. Могут присутствовать другие разделы метаданных, и в зависимости от того, что вы хотите сделать, обе эти программы могут по-разному сохранять или удалять все. Например, jhead -purejpgудаляет всю информацию, не необходимую для рендеринга изображения.

mattdm
источник
6

У инструмента обработки EXIF exiv2есть команда для удаления данных EXIF:

exiv2 rm image.jpg

удаляет все данные EXIF ​​из изображения.

Чтобы удалить данные EXIF ​​из всех изображений JPEG в текущем каталоге, используйте

exiv2 rm *.jpg

Чтобы удалить данные EXIF ​​из всех изображений JPEG в текущем каталоге и всех его подкаталогов рекурсивно, используйте:

find . -type f -iname '*.jpg' | xargs exiv2 rm

Это хорошая идея, чтобы проверить команду раньше.

Чтобы увидеть, какие файлы найдены:

find . -type f -iname '*.jpg' | less

Чтобы увидеть, какие команды будут выполнены:

find . -type f -iname '*.jpg' | xargs echo exiv2 rm | less

Обратите внимание на echoвставленную перед exiv2печатью команду вместо ее запуска.

Volker Siegel
источник
3

Вы должны взглянуть на некоторые инструменты с открытым исходным кодом, такие как exiftool . Вариантов много (для exif, xmp, iptc).

exiftool -overwrite_original \
-xmp:Creator='votre nom' \
-xmp:WebStatement='http://creativecommons.org/licenses/by-nc-nd/3.0/' \
-xmp:Rights='Copyright votre nom. This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0  License.' \
-iptc:By-line='votre nom' \
-iptc:CopyrightNotice='Copyright votre nom. This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0  License.' \
-exif:Artist='votre nom' \
-exif:Copyright='Copyright votre nom. This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0  License.' \
votre_fichier.jpg

Единственное, что вы должны сделать дальше, это написать крошечный скрипт, который перечисляет ваши файлы (jpg) и выполняет все эти вещи. Чтобы удалить содержимое поля, вам нужно установить его на «^»; как в следующем примере:

-Software= ^
-ModifyDate= ^
-CreatorTool= ^
-MetadataDate= ^
-Rating= ^
-ImageNumber= ^
-WhiteBalance= ^
-Temperature= ^
-Tint= ^
-IncrementalTemperature= ^
-IncrementalTint= ^
-Exposure= ^
-Shadows= ^
-Brightness= ^
-Contrast= ^
-Saturation= ^
-Sharpness= ^
-LuminanceSmoothing= ^
-ColorNoiseReduction= ^
-ChromaticAberrationR= ^
-ChromaticAberrationB= ^
-VignetteAmount= ^
-VignetteMidpoint= ^
-ShadowTint= ^
-RedHue= ^
-RedSaturation= ^-GreenHue= ^
-GreenSaturation= ^
-BlueHue= ^
-BlueSaturation= ^
-FillLight= ^
-Vibrance= ^
-HighlightRecovery= ^
-Clarity= ^
-Defringe= ^
-HueAdjustmentRed= ^
-HueAdjustmentOrange= ^
-HueAdjustmentYellow= ^
-HueAdjustmentGreen= ^
-HueAdjustmentAqua= ^
-HueAdjustmentBlue= ^
-HueAdjustmentPurple= ^
-HueAdjustmentMagenta= ^
-SaturationAdjustmentRed= ^
-SaturationAdjustmentOrange= ^
-SaturationAdjustmentYellow= ^
-SaturationAdjustmentGreen= ^
-SaturationAdjustmentAqua= ^
-SaturationAdjustmentBlue= ^
-SaturationAdjustmentPurple= ^
-SaturationAdjustmentMagenta= ^
-LuminanceAdjustmentRed= ^
-LuminanceAdjustmentOrange= ^
-LuminanceAdjustmentYellow= ^
-LuminanceAdjustmentGreen= ^
-LuminanceAdjustmentAqua= ^
-LuminanceAdjustmentBlue= ^
-LuminanceAdjustmentPurple= ^
-LuminanceAdjustmentMagenta= ^
-SplitToningShadowHue= ^
-SplitToningShadowSaturation= ^
-SplitToningHighlightHue= ^
-SplitToningHighlightSaturation= ^
-SplitToningBalance= ^
-ParametricShadows= ^
-ParametricDarks= ^
-ParametricLights= ^
-ParametricHighlights= ^
-ParametricShadowSplit= ^
-ParametricMidtoneSplit= ^
-ParametricHighlightSplit= ^
-SharpenRadius= ^
-SharpenDetail= ^
-SharpenEdgeMasking= ^
-ConvertToGrayscale= ^
-ToneCurveName= ^
-CameraProfile= ^
-HasSettings= ^
-CropTop= ^
-CropLeft= ^
-CropBottom= ^
-CropRight= ^
-CropAngle= ^
-CropWidth= ^
-CropHeight= ^
-CropUnit= ^
-HasCrop= ^
-AlreadyApplied= ^
-ToneCurve= ^
-CameraProfile= ^
-ApplicationRecordVersion= ^
Винсент Деместер
источник
3

Предложение Винсента использовать exiftool хорошо. Я предлагаю вам написать скрипт, который принимает один аргумент имени файла и запускает нужные вам функции стриптиза. Затем используйте findдля выполнения этого сценария в вашем наборе файлов. Сценарий будет выглядеть примерно так:

#!/bin/sh
exiftool -overwrite_original -ExifFieldName=^ [-MoreExifFieldNames=^] $1

Скажем, вы сохранили это как /usr/local/bin/strip_exif.sh, затем вы могли бы вызвать его, перейдя в папку, в которой находятся ваши файлы JPEG:

find -type f -iname '*.jpg' -exec strip_exif.sh {} \;

Изменить: После просмотра ответа mattdm об аргументе для удаления всех тегов, я думаю, что вы можете пропустить сценарий и просто использовать поиск как здесь:

find -type f -iname '*.jpg' -exec exiftool -all= {} \;
Калеб
источник