ExifTool: Usuń wszystkie metadane oprócz określonych znaczników

2

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 exiftoolpomocą 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.

Kyselejsyreček
źródło
Korzystając z odpowiedzi z pytania, na które się powołuje, otrzymuje się nieoczekiwany wynik wskazany w moim pytaniu.
Kyselejsyreček
Zmieniłem odpowiedź na to pytanie - przetestowałem swoją i działa.
flolilo
Pamiętaj też, że v 10.40pochodzi od stycznia 2017 r. - v 10.79zostało wydane niedawno. Najnowsza wersja produkcyjna to v 10.55- w czerwcu 2017 r.
flolilo
1
czy mógłbyś przejść na moją odpowiedź? Teraz go edytowałem, więc -commonnie jest już potrzebny.
flolilo

Odpowiedzi:

2

Znacznik Commonskró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 przypadku FileSize, oczywiście nie można arbitralnie zmienić rozmiaru pliku docelowego, a więc filesize is not writablebłę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ć Qualitytagu, 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. Aperturei ShutterSpeedsą dwoma przykładami. Nie możesz skopiować ich do innego pliku, ponieważ pojedynczo nie istnieją. Musisz skopiować tagi, na których są oparte. Aperturejest oparty na jednym FNumberlub ApertureValue, w zależności od tego, co faktycznie znajduje się w pliku. ShutterSpeedopiera się ExposureTime, ShutterSpeedValuei / lub BulbDuration. Aby poprawnie „skopiować” Aperturei ShutterSpeed, 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 Makernotes

ICC_Profilejest 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_Profilejeśli if -ICC_Profile:allnie działa, ponieważ niektóre indywidualne tagi w ICC_Profilenie są zapisywalne.

tl; dr: Nie ma nic złego w poleceniu exiftool, po prostu nie robi tego, co myślisz, że działa.

StarGeek
źródło
polubiłem tl;dr:i całkowicie się z tym zgadzam.
C0deDaedalus