Jest problem z opisami EXIF niektórych zdjęć robionych szerokokątnym
obiektywem Olympus Zuiko Digital 11--22 f/2.8-3.5. Niektórymi żeby było śmieszniej
-- widocznie zależy to od nastaw. Otóż
jeżeli synchronizuję zdjęcia ze śladem GPS za pomocą
gpsPhoto.pl
, to pojawia się komunikat:
error: [minor] Bad MakerNotes directory
Komunikat generuje jakaś procedura z pakietu
Image::ExifTool
,
wykorzystywana przez gpsPhoto.pl
.
Po aktualizacji exiftool do 8.06 o tyle się sytuacja zmieniła, że
komunikat jest inny:
error: [minor] Bad EquipmentIFD directory.
Gdybym korzystał ze skryptu exiftool
, to błąd można zignorować
dodając opcję -m
przy uruchamianiu skryptu.
Ale ja używam gpsPhoto.pl
,
które z kolei korzysta z perlowego pakietu Image::ExifTool
. Żeby nie
modyfikować gpsPhoto.pl
(beznadziejna na oko sprawa),
poprawiam wpisy EXIF poniższym programem w Ruby.
Słowo poprawiam oznacza
dokładnie tyle, że poprawne wpisy są przepisane a błędne zignorowane.
Otrzymane w rezultacie opisy EXIF są niekompletne. Opcja -m
działa
dokładnie identycznie.
#! /usr/bin/ruby # fix_tags.rb by Sijmen Mulder <sjmulder@gmail.com> in 2008. Public domain. files = Dir.glob("*.JPG").concat Dir.glob("*.jpg") files.each do |file| commands = [ "cp #{file} #{file}_original", "exiftool -overwrite_original -q -exif:all= \"#{file}\"", "exiftool -overwrite_original -q -q -tagsfromfile \"#{file}_original\" --MakerNotes \"#{file}\" " ] puts(file) commands.each do |c| #puts(c) system(c) end end puts "Processed #{files.length} file(s)."
Powyższy skrypt kopiuje każdy plik .jpg
z bieżącego katalogu,
a następnie wstawia do kopii wyłącznie poprawne wpisy EXIF z pliku oryginalnego.
Program jest w Ruby bo znaleziono go w sieci. Można by przerobić w innym języku ale mi się nie chce
Cała procedura jest taka sobie,
bo poprawione pliki .jpg
zawierają niekompletne
opisy EXIF, ale póki co nic lepszego nie wymyśliłem.