exiftool: exif verilerini silin ancak bazı belirli etiketleri koruyun


10

Şu anda -all = seçeneği ile exiftool kullanıyorum ve fotoğraflarımdaki tüm EXIF ​​verilerini siler:

exiftool -overwrite_original -all= /Users/andyl/photos/*.jpg

Şimdi exiftool tüm EXIF ​​bilgilerini silmek istiyorum ama fotoğrafın başlık, resim yazısı ve anahtar kelimeleri DEĞİL.

Bunu nasıl başarabilirim?

Yanıtlar:


7

Başınız beladaysa man sayfalarını mutlaka kontrol etmelisiniz.

man exiftools

Hangi böyle bir şey okumak gerekir:

--TAG

    Exclude specified tag from extracted information.  Same as the -x
    option.  May also be used following a -tagsFromFile option to
      exclude tags from being copied, or to exclude groups from being
    deleted when deleting all information (ie. "-all= --exif:all"
    deletes all but EXIF information).  But note that this will not
    exclude individual tags from a group delete.  Instead, individual
    tags may be recovered using the -tagsFromFile option (ie. "-all=
    -tagsfromfile @ -artist").  Wildcards are permitted as described
    above for -TAG.

Gibi bir şey:

exiftool -overwrite_original -all= -tagsFromFile @ -title -caption -keywords /Users/andyl/photos/*.jpg

çalışmalı. Etiketlerin gerçekten bu şekilde adlandırıldığından emin olun exif /path/to/file.jpg.

Komut ne yapar? -all=tüm etiketleri siler -tagsFromFile @, listelenen bayrakları kaynak dosyadan alır, bu durumda @geçerli dosyayı temsil eder (elbette burada olduğu gibi sabit bir dosya ile değiştirebilirsiniz -tagsFromFile pic.jpg) ve bunları hedefe yazar.


PS benim başlığım da (-caption parametresi ile) silinir, tutmak için herhangi bir yolu var mı?
Remus Rigo

1

Yalnızca orijinal dosyadaki belirli etiketleri silmek istiyorsanız (yani, dosyalar arasındaki etiketlerden aktarma olmaz, ancak aynı dosya içinden), -tagsFromFileanahtara ihtiyacınız yoktur , ancak <a'yı dosya boyunca aktarmanızı söylemek için a'ya ihtiyacınız vardır.

Not: Şimdi (sürümü 10.79) itibariyle -common<commonayarlayamıyor kompozit etiketler kullanılarak ve bu nedenle -common, örneğin tranferring şeyler kıracak transferi etiketleri Flashiçin Model. Bu nedenle, kodum açıktır ve -commonnormalde içerecek her etiketi içerir. Her neyse, iyi bir fikir gibi görünüyor.

exiftool -All:All= \
         -DateTimeOriginal<DateTimeOriginal \
         -Model<Model \
         -LensModel<LensModel \
         -FocalLength<FocalLength \
         -ISO<ISO \
         -ExposureTime<ExposureTime -ShutterSpeedValue<ShutterSpeedValue -BulbDuration<BulbDuration \
         -ApertureValue<ApertureValue -FNumber<FNumber \
         -WhiteBalance<WhiteBalance \
         -Flash<Flash \
         test.jpg
  # Or, if you want to use `-TagsFromFile`:
exiftool -All:All= \
         -TagsFromFile test.jpg \
         -DateTimeOriginal \
         -Model \
         -LensModel \
         -FocalLength \
         -ISO \
         -ExposureTime -ShutterSpeedValue -BulbDuration \
         -ApertureValue -FNumber \
         -WhiteBalance \
         -Flash \
         test.jpg

Ayrıca , kodumun eldeki bu görevle (ve sürüm 10.79) çalışamayacağım örnekleri içeren exiftool uygulama belgeleriyle çeliştiğini lütfen unutmayın .


-3

Exif aracını kullanarak tüm verileri silmek için:

Şununla yeniden adlandır exiftool(-k).exe:

exiftool (-overwrite_original -all= -k).exe

Bu birçok sorunu çözer

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.