degal/exif.py
changeset 121 3bed35e79f41
parent 120 55cb7fc9c8fb
child 122 292aaba6d6ec
--- a/degal/exif.py	Sun Jun 14 23:43:40 2009 +0300
+++ b/degal/exif.py	Sun Jun 14 23:57:50 2009 +0300
@@ -64,11 +64,17 @@
             self.image.readMetadata()
         
         def image_tag (self, tag, default=None) :
-            try :
-                # XXX: this is wrong
-                return self.image.interpretedExifValue("Exif.Photo.%s" % tag)
-            
-            except (IndexError, KeyError) :
+            # try with likely prefixes
+            for prefix in ('Exif.Photo', 'Exif.Image') :
+                try :
+                    return self.image.interpretedExifValue("%s.%s" % (prefix, tag))
+                
+                except (IndexError, KeyError) :
+                    # nope...
+                    continue
+
+            else :
+                # not ofund
                 return default
     
 try :
@@ -90,8 +96,16 @@
                 self.tags = EXIF.process_file(fh)
         
         def image_tag (self, tag, default=None) :
-            # XXX: this is wrong
-            return self.tags.get('Image %s' % (tag, ), default)
+            # try with likely prefixes
+            for prefix in ('Image', 'EXIF') :
+                name = prefix + ' ' + tag
+
+                if name in self.tags :
+                    return self.tags[name]
+
+            else :
+                # not found
+                return default
 
 # ExifHandler implementations to use, in preference order
 EXIF_HANDLERS = [