Birkaç bin JPG dosyasından EXIF bilgilerini yinelemeli olarak nasıl kaldırabilirim?
Birkaç bin JPG dosyasından EXIF bilgilerini yinelemeli olarak nasıl kaldırabilirim?
Yanıtlar:
Belirli bölümleri kaldırmak veya değiştirmek istiyorsanız diğer ExifTool önerileri mükemmeldir. Ancak tüm meta verileri tamamen kaldırmak istiyorsanız, bunu kullanın (man sayfasından):
exiftool -all= dst.jpg
Delete all meta information from an image.
-De bayrağıyla jhead'i de kullanabilirsiniz :
-de Delete the Exif header entirely. Leaves other metadata
sections intact.
Her iki durumda da EXIF'in yalnızca bir tür meta veri olduğunu unutmayın. Diğer meta veri bölümleri mevcut olabilir ve ne yapmak istediğinize bağlı olarak, bu programların her ikisinin de bazılarını korumak veya tümünü kaldırmak için farklı seçenekleri vardır. Örneğin jhead -purejpg
, görüntüyü oluşturmak için gerekli olmayan tüm bilgileri çıkarır.
EXIF işleme aracının exiv2
EXIF verilerini silme komutu vardır:
exiv2 rm image.jpg
görüntüdeki tüm EXIF verilerini kaldırır.
Geçerli dizindeki tüm JPEG görüntülerden EXIF verilerini kaldırmak için şunu kullanın:
exiv2 rm *.jpg
EXIF verilerini geçerli dizindeki tüm JPEG resimlerden ve bu dizinin tüm alt dizinlerinden yinelemeli olarak kaldırmak için şunu kullanın:
find . -type f -iname '*.jpg' | xargs exiv2 rm
Komutu daha önce test etmek iyi bir fikirdir.
Hangi dosyaların bulunduğunu görmek için:
find . -type f -iname '*.jpg' | less
Hangi komutların yürütüleceğini görmek için:
find . -type f -iname '*.jpg' | xargs echo exiv2 rm | less
Komutu yazdırmak yerine yazdırmak için echo
önceden eklenenleri not edin exiv2
.
Exiftool gibi bazı açık kaynak araçlarına bakmalısınız . Çok fazla seçenek var (exif, xmp, iptc için).
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
Daha sonra yapmanız gereken tek şey, dosyalarınızı (jpg) listeleyen ve bir şeyler yapan küçük bir komut dosyası yazmaktır. Bir alanın içeriğini kaldırmak için onu "^" olarak ayarlamanız gerekir; aşağıdaki örnek gibi:
-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= ^
Vincent'ın exiftool kullanma önerisi iyidir. Bir dosya adının tek bir argümanını kabul eden ve istediğiniz şerit işlevlerini çalıştıran bir komut dosyası yazmanızı öneririm. Sonra find
bu komut dosyasını dosya kümenizde yürütmek için kullanın . Senaryo şöyle görünecektir:
#!/bin/sh
exiftool -overwrite_original -ExifFieldName=^ [-MoreExifFieldNames=^] $1
Bunu şu şekilde kaydettiğinizi varsayalım /usr/local/bin/strip_exif.sh
, daha sonra jpeg dosyalarınızın olduğu klasöre giderek bunu çağırabilirsiniz:
find -type f -iname '*.jpg' -exec strip_exif.sh {} \;
Düzenleme: Tüm etiketleri şeritleme argümanı ile ilgili mattdm'nin cevabını gördükten sonra , komut dosyasını atlayabilir ve sadece şu şekilde kullanabilirsiniz:
find -type f -iname '*.jpg' -exec exiftool -all= {} \;