EXIF 정보 일괄 삭제 수천 개의 JPG

수천 개의 JPG 파일에서 EXIF ​​정보를 재귀 적으로 제거하려면 어떻게해야합니까?



답변

특정 섹션을 제거하거나 변경하려는 경우 다른 ExifTool 제안이 좋습니다. 그러나 모든 메타 데이터를 완전히 제거하려면 맨 페이지에서 다음을 사용하십시오.

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

-de 플래그와 함께 jhead 를 사용할 수도 있습니다 .

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

두 경우 모두 EXIF는 한 가지 유형의 메타 데이터 일뿐입니다. 다른 메타 데이터 섹션이있을 수 있으며, 수행하려는 작업에 따라이 두 프로그램 모두 일부를 유지하거나 제거하기위한 다른 옵션이 있습니다. 예를 들어 jhead -purejpg이미지 렌더링에 필요하지 않은 모든 정보를 제거합니다.


답변

EXIF 처리 도구 exiv2에는 EXIF ​​데이터를 삭제하는 명령이 있습니다.

exiv2 rm image.jpg

이미지에서 모든 EXIF ​​데이터를 제거합니다.

현재 디렉토리의 모든 JPEG 이미지에서 EXIF ​​데이터를 제거하려면

exiv2 rm *.jpg

현재 디렉토리의 모든 JPEG 이미지 및 모든 하위 디렉토리에서 재귀 적으로 EXIF ​​데이터를 제거하려면 다음을 사용하십시오.

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.


답변

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= ^


답변

exiftool 사용에 대한 Vincent의 제안 은 좋습니다. 파일 이름의 단일 인수를 허용하고 원하는 스트립 함수를 실행하는 스크립트를 작성하는 것이 좋습니다. 그런 다음 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= {} \;


답변