Próbuję usunąć wszystkie metadane z plików JPEG, z wyjątkiem typowych tagów fotograficznych wymienionych na liście exiftool -common
(model aparatu, czas otwarcia migawki, przysłona, ISO itp.), Model obiektywu, przestrzeń kolorów i osadzony profil ICC.
Korzystając z odpowiedzi z pytania exiftool: usuń dane exif, ale zachowaj określone tagi , zostaną wygenerowane następujące polecenia. Problem polega na tym, że oba powodują usunięcie czasu otwarcia migawki, wartości przysłony i osadzonego profilu ICC, co można zweryfikować za exiftool
pomocą odpowiednich flag.
exiftool -all= -tagsFromFile @ -common -LensModel -ColorSpace -icc_profile:all original.JPG
exiftool -all= -tagsFromFile @ -common -aperture -ShutterSpeed -LensModel -ColorSpace -icc_profile:all original.JPG
Oba generują ostrzeżenie:
Warning: Sorry, filesize is not writable
Czy polecenia są zniekształcone, czy jest to błąd ExifTool? To zachowanie zostało potwierdzone w ExifTool w wersji 10.40.
10.40
pochodzi od stycznia 2017 r. - v10.79
zostało wydane niedawno. Najnowsza wersja produkcyjna to v10.55
- w czerwcu 2017 r.-common
nie jest już potrzebny.Odpowiedzi:
Znacznik
Common
skrótu jest bardziej znacznikiem gromadzenia danych i tak naprawdę nie jest przeznaczony do kopiowania informacji z jednego pliku do drugiego (zawiera znaczniki skrótów dla listy znaczników). Wiele z tych znaczników objętych tym skrótem to albo tagi systemu plików (FileSize
), tagi MakerNotes (Quality
), albo tagi kompozytowe (Aperture
,ShutterSpeed
). W przypadkuFileSize
, oczywiście nie można arbitralnie zmienić rozmiaru pliku docelowego, a więcfilesize is not writable
błędu.W przypadku tagów Makernotes nie można ich kopiować ani tworzyć osobno. Należy go skopiować jako blok z
-MakerNotes
. Być może nie próbowałeś skopiowaćQuality
tagu, ale ten punkt staje się istotny, jeśli chodzi o tagi kompozytowe.Znaczniki złożone nie są znacznikami znajdującymi się w pliku. Pochodzą z wielu innych tagów.
Aperture
iShutterSpeed
są dwoma przykładami. Nie możesz skopiować ich do innego pliku, ponieważ pojedynczo nie istnieją. Musisz skopiować tagi, na których są oparte.Aperture
jest oparty na jednymFNumber
lubApertureValue
, w zależności od tego, co faktycznie znajduje się w pliku.ShutterSpeed
opiera sięExposureTime
,ShutterSpeedValue
i / lubBulbDuration
. Aby poprawnie „skopiować”Aperture
iShutterSpeed
, musisz skopiować powyższe tagi, na których są oparte. Niektóre z tych tagów mogą znajdować się tylko w MakerNotes, więc musisz skopiować całe MakernotesICC_Profile
jest uważany za „niebezpieczny” tag i nie zostanie skopiowany, chyba że zostanie wyraźnie wymieniony na liście. Prawdopodobnie będziesz musiał skopiować go jako blok,-ICC_Profile
jeśli if-ICC_Profile:all
nie działa, ponieważ niektóre indywidualne tagi wICC_Profile
nie są zapisywalne.tl; dr: Nie ma nic złego w poleceniu exiftool, po prostu nie robi tego, co myślisz, że działa.
źródło
tl;dr:
i całkowicie się z tym zgadzam.