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

По большей части повторенные slahes в пути эквивалентны единственной наклонной черте. Это поведение получает мандат POSIX, и большинство приложений следует примеру. Исключение - то, что “путь, который начинается с двух последовательных наклонных черт, может быть интерпретирован определенным реализацией способом” (но ///foo эквивалентно /foo).

Большинство нельдов не делает ничего специального с двумя начальными наклонными чертами. Linux, в частности, не делает. Cygwin делает: //hostname/path получает доступ к сетевому диску (SMB).

То, что Вы видите, не является, на самом деле, Linux, делающим ничто специальное с //: это - отслеживание текущего каталога удара. Сравните:

$ bash -c 'cd //; pwd'
//
$ bash -c 'cd //; /bin/pwd'
/

Bash принимает меру предосторожности, которую могла бы рассматривать ОС // особенно и хранение его. Тире делает то же. Ksh и zsh не делают, когда они работают на Linux, я предполагаю (я не проверил), у них есть время компиляции, устанавливая.

16
17.01.2013, 07:10
4 ответа

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

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

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

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

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

17
27.01.2020, 19:48

Необходимо посмотреть на некоторые инструменты с открытым исходным кодом как 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
27.01.2020, 19:48

Предложение Vincent использования 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= {} \;
3
27.01.2020, 19:48

Инструмент обработки 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 для печати команды вместо выполнения Это.

6
27.01.2020, 19:48

Теги

Похожие вопросы