piątek, 15 stycznia 2010

Bad MakerNotes directory

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.

Brak komentarzy:

Prześlij komentarz