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.