Bagaimana saya bisa menghapus info EXIF dari beberapa ribu file JPG secara rekursif?
sumber
Bagaimana saya bisa menghapus info EXIF dari beberapa ribu file JPG secara rekursif?
Saran ExifTool lainnya sangat bagus jika Anda ingin menghapus atau mengubah bagian tertentu. Tetapi jika Anda ingin menghapus semua metadata sepenuhnya, gunakan ini (dari halaman manual):
exiftool -all= dst.jpg
Delete all meta information from an image.
Anda juga bisa menggunakan jhead , dengan flag -de:
-de Delete the Exif header entirely. Leaves other metadata
sections intact.
Perhatikan bahwa dalam kedua kasus, EXIF hanya satu jenis metadata. Bagian metadata lain mungkin ada, dan tergantung pada apa yang ingin Anda lakukan, kedua program ini memiliki opsi berbeda untuk mempertahankan sebagian atau menghapus semuanya. Misalnya, jhead -purejpg
menghapus semua informasi yang tidak diperlukan untuk menampilkan gambar.
Alat penanganan EXIF exiv2
memiliki perintah untuk menghapus data EXIF:
exiv2 rm image.jpg
menghapus semua data EXIF dari gambar.
Untuk menghapus data EXIF dari semua gambar JPEG di direktori saat ini, gunakan
exiv2 rm *.jpg
Untuk menghapus data EXIF dari semua gambar JPEG di direktori saat ini, dan semua subdirektori dari data tersebut secara rekursif, gunakan:
find . -type f -iname '*.jpg' | xargs exiv2 rm
Merupakan ide bagus untuk menguji perintah sebelumnya.
Untuk melihat file mana yang ditemukan:
find . -type f -iname '*.jpg' | less
Untuk melihat perintah mana yang akan dieksekusi:
find . -type f -iname '*.jpg' | xargs echo exiv2 rm | less
Perhatikan yang echo
dimasukkan sebelumnya exiv2
untuk mencetak perintah, alih-alih menjalankannya.
Anda harus melihat beberapa alat opensource seperti exiftool . Ada banyak opsi (untuk 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
Satu-satunya hal yang harus Anda lakukan selanjutnya adalah menulis skrip kecil yang berisi daftar file Anda (jpg) dan melakukan hal-hal tersebut. Untuk menghapus konten suatu bidang, Anda harus mengaturnya ke "^"; seperti contoh berikut:
-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= ^
Saran Vincent untuk menggunakan exiftool adalah baik. Saya sarankan Anda menulis skrip yang menerima argumen tunggal dari nama file, dan menjalankan fungsi strip yang Anda inginkan. Kemudian gunakan find
untuk menjalankan skrip ini pada set file Anda. Script akan terlihat seperti ini:
#!/bin/sh
exiftool -overwrite_original -ExifFieldName=^ [-MoreExifFieldNames=^] $1
Katakanlah Anda menyimpan ini sebagai /usr/local/bin/strip_exif.sh
, Anda kemudian dapat memanggilnya dengan masuk ke folder yang memiliki file jpeg Anda seperti ini:
find -type f -iname '*.jpg' -exec strip_exif.sh {} \;
Sunting: Setelah melihat jawaban mattdm tentang argumen untuk menghapus semua tag, saya pikir Anda dapat melewati skrip dan hanya menggunakan find seperti ini:
find -type f -iname '*.jpg' -exec exiftool -all= {} \;