Làm cách nào tôi có thể xóa đệ quy thông tin EXIF khỏi hàng ngàn tệp JPG?
Làm cách nào tôi có thể xóa đệ quy thông tin EXIF khỏi hàng ngàn tệp JPG?
Câu trả lời:
Các đề xuất ExifTool khác là tuyệt vời nếu bạn muốn xóa hoặc thay đổi các phần cụ thể. Nhưng nếu bạn muốn xóa hoàn toàn tất cả các siêu dữ liệu, hãy sử dụng phần này (từ trang man):
exiftool -all= dst.jpg
Delete all meta information from an image.
Bạn cũng có thể sử dụng jhead , với cờ -de:
-de Delete the Exif header entirely. Leaves other metadata
sections intact.
Lưu ý rằng trong cả hai trường hợp, EXIF chỉ là một loại siêu dữ liệu. Các phần siêu dữ liệu khác có thể có mặt và tùy thuộc vào những gì bạn muốn làm, cả hai chương trình này đều có các tùy chọn khác nhau để bảo tồn một số hoặc xóa tất cả. Ví dụ, jhead -purejpg
dải tất cả thông tin không cần thiết để hiển thị hình ảnh.
Công cụ xử lý EXIF exiv2
có lệnh xóa dữ liệu EXIF:
exiv2 rm image.jpg
xóa tất cả dữ liệu EXIF khỏi hình ảnh.
Để xóa dữ liệu EXIF khỏi tất cả các hình ảnh JPEG trong thư mục hiện tại, hãy sử dụng
exiv2 rm *.jpg
Để xóa dữ liệu EXIF khỏi tất cả các hình ảnh JPEG trong thư mục hiện tại và tất cả các thư mục con của nó theo cách đệ quy, hãy sử dụng:
find . -type f -iname '*.jpg' | xargs exiv2 rm
Đó là một ý tưởng tốt để kiểm tra lệnh trước.
Để xem tập tin nào được tìm thấy:
find . -type f -iname '*.jpg' | less
Để xem lệnh nào sẽ được thực thi:
find . -type f -iname '*.jpg' | xargs echo exiv2 rm | less
Lưu ý echo
chèn trước exiv2
để in lệnh, thay vì chạy nó.
Bạn nên xem một số công cụ mã nguồn mở như exiftool . Có rất nhiều tùy chọn (cho 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
Điều duy nhất bạn nên làm tiếp theo là viết một tập lệnh nhỏ liệt kê các tệp của bạn (jpg) và thực hiện công cụ. Để xóa nội dung của một trường, bạn sẽ phải đặt nó thành "^"; như ví dụ sau:
-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= ^
Đề nghị sử dụng exiftool của Vincent là tốt. Tôi đề nghị bạn viết một tập lệnh chấp nhận một đối số duy nhất của tên tệp và chạy các hàm dải mong muốn của bạn trên đó. Sau đó sử dụng find
để thực thi tập lệnh này trên tập tin của bạn. Kịch bản sẽ trông giống như thế này:
#!/bin/sh
exiftool -overwrite_original -ExifFieldName=^ [-MoreExifFieldNames=^] $1
Giả sử bạn lưu cái này dưới dạng /usr/local/bin/strip_exif.sh
, sau đó bạn có thể gọi nó bằng cách vào thư mục chứa các tệp jpeg của bạn như thế này:
find -type f -iname '*.jpg' -exec strip_exif.sh {} \;
Chỉnh sửa: Sau khi thấy câu trả lời của mattdm về đối số để loại bỏ tất cả các thẻ, tôi cho rằng bạn có thể bỏ qua tập lệnh và chỉ cần sử dụng tìm như thế này:
find -type f -iname '*.jpg' -exec exiftool -all= {} \;