Blob Blame History Raw
diff -ur phatch-0.2.7_old/phatch/core/pil.py phatch-0.2.7/phatch/core/pil.py
--- phatch-0.2.7_old/phatch/core/pil.py	2010-03-12 12:29:26.000000000 +0530
+++ phatch-0.2.7/phatch/core/pil.py	2011-06-25 14:27:36.487002576 +0530
@@ -180,8 +180,8 @@
             metadata.InfoZexif: image}
         #check format -> readable/writable metadata with pyexiv2
         if exif and exif.is_readable_format(image.format):
-            self.pyexiv2 = pyexiv2.Image(path)
-            self.pyexiv2.readMetadata()
+            self.pyexiv2 = pyexiv2.ImageMetadata(path)
+            self.pyexiv2.read()
             self.writable_exif = exif.is_writable_format_exif(image.format)
             self.writable_iptc = exif.is_writable_format_exif(image.format)
             self.writable = self.writable_exif or self.writable_iptc
diff -ur phatch-0.2.7_old/phatch/lib/imageTable.py phatch-0.2.7/phatch/lib/imageTable.py
--- phatch-0.2.7_old/phatch/lib/imageTable.py	2010-03-12 12:29:26.000000000 +0530
+++ phatch-0.2.7/phatch/lib/imageTable.py	2011-06-24 21:01:51.826422823 +0530
@@ -356,8 +356,8 @@
         for image, image_changes in changes:
             # try to save to image file
             try:
-                exiv2_image = pyexiv2.Image(image.filename)
-                exiv2_image.readMetadata()
+                exiv2_image = pyexiv2.ImageMetadata(image.filename)
+                exiv2_image.read()
                 for key, value in image_changes.items():
                     exiv2_key = str(key.replace(SEPARATOR, '.'))
                     if value:
diff -ur phatch-0.2.7_old/phatch/lib/metadata.py phatch-0.2.7/phatch/lib/metadata.py
--- phatch-0.2.7_old/phatch/lib/metadata.py	2010-03-12 12:29:26.000000000 +0530
+++ phatch-0.2.7/phatch/lib/metadata.py	2011-06-25 14:29:13.460944234 +0530
@@ -931,8 +931,8 @@
         """
         format = imtools.get_format(os.path.splitext(filename)[-1][1:])
         if cls._pyexiv2.is_readable_format(format):
-            source = cls.pyexiv2.Image(filename)
-            source.readMetadata()
+            source = cls.pyexiv2.ImageMetadata(filename)
+            source.read()
             if all:
                 source.cacheAllExifTags()
                 source.cacheAllIptcTags()
@@ -1130,7 +1130,7 @@
 
     def _extract_others(self):
         """Extract all other vars"""
-        self._extract_others_from_keys(self._source.exifKeys())
+        self._extract_others_from_keys(self._source.exif_keys)
 
     regex = re.compile('^Exif|^orientation$')
     type = 'Exif'
@@ -1170,7 +1170,7 @@
 
     def _extract_others(self):
         """Extract all other vars"""
-        self._extract_others_from_keys(self._source.iptcKeys())
+        self._extract_others_from_keys(self._source.iptc_keys)
 
     type = 'Iptc'
     regex = re.compile('^Iptc_')
diff -ur phatch-0.2.7_old/phatch/lib/openImage.py phatch-0.2.7/phatch/lib/openImage.py
--- phatch-0.2.7_old/phatch/lib/openImage.py	2010-03-12 12:29:26.000000000 +0530
+++ phatch-0.2.7/phatch/lib/openImage.py	2011-06-24 21:01:51.831423953 +0530
@@ -77,8 +77,8 @@
 def open_image_exif_thumb(uri):
     if pyexiv2:
         try:
-            pyexiv2_image = pyexiv2.Image(uri)
-            pyexiv2_image.readMetadata()
+            pyexiv2_image = pyexiv2.ImageMetadata(uri)
+            pyexiv2_image.read()
             thumb_data = pyexiv2_image.getThumbnailData()
             if thumb_data:
                 return imtools.open_image_data(thumb_data)
diff -ur phatch-0.2.7_old/phatch/lib/_pyexiv2.py phatch-0.2.7/phatch/lib/_pyexiv2.py
--- phatch-0.2.7_old/phatch/lib/_pyexiv2.py	2010-03-12 12:29:26.000000000 +0530
+++ phatch-0.2.7/phatch/lib/_pyexiv2.py	2011-06-25 13:45:49.054578121 +0530
@@ -103,8 +103,7 @@
     #verify if there are tags which might break exiv2
     broken_tag = None
 
-    for tag in list(source_pyexiv2_image.exifKeys()) + \
-        list(source_pyexiv2_image.iptcKeys()):
+    for tag in list(source_pyexiv2_image.exif_keys + source_pyexiv2_image.iptc_keys):
         if RE_BROKEN.match(tag):
             broken_tag = RE_BROKEN
             break
@@ -147,21 +146,25 @@
     :type thumbdata: string
     """
     #read target
-    target = pyexiv2.Image(target)
-    target.readMetadata()
+    target = pyexiv2.ImageMetadata(target)
+    target.read()
     warnings = []
     written = False
+    #print broken_tag
     #copy exif metadata
     if (not source_format or source_format in READ_EXIF) and \
         (not target_format or target_format in WRITE_EXIF):
-        for tag in source_pyexiv2_image.exifKeys():
+        for tag in source_pyexiv2_image.exif_keys:
             if not(broken_tag and broken_tag.match(tag)):
                 try:
                     #the following is more or less the same as
                     #target[tag] = source_pyexiv2_image[tag]
                     #but prevents conversions
-                    target._Image__setExifTag(tag,
-                        source_pyexiv2_image._Image__getExifTag(tag)[1])
+                    #target._Image__setExifTag(tag,
+                    #     source_pyexiv2_image._Image__getExifTag(tag)[1])
+                    #targetMessage = '%s %s' % (tag, source_pyexiv2_image[tag].raw_value)
+                    #print targetMessage
+                    target[tag] = pyexiv2.ExifTag(tag,source_pyexiv2_image[tag].value);
                     written = True
                 except Exception, message:
                     message = '%s: %s' % (tag, message)
@@ -169,9 +172,9 @@
     #copy iptc metadata
     if (not source_format or source_format in READ_IPTC) and \
         (not target_format or target_format in WRITE_IPTC):
-        for tag in source_pyexiv2_image.iptcKeys():
+        for tag in source_pyexiv2_image.iptc_keys:
             try:
-                target[tag] = source_pyexiv2_image[tag]
+                target[tag] = pyexiv2.IptcTag(tag, source_pyexiv2_image[tag].value);
                 written = True
             except Exception, message:
                 message = '%s: %s' % (tag, message)
@@ -180,14 +183,14 @@
     if (not source_format or source_format in READ_COMMENT) and \
         (not target_format or target_format in WRITE_COMMENT):
         try:
-            target.setComment(source_pyexiv2_image.getComment())
+            target.comment = (source_pyexiv2_image.comment)
             written = True
         except Exception, message:
             warnings.append(message)
     warnings.append(write_thumbdata(target, thumbdata))
     #save metadata (this might rise an exception)
     if written:
-        target.writeMetadata()
+        target.write()
     return '\n'.join(warnings)
 
 
@@ -200,6 +203,8 @@
     return format
 
 
+# This method won't work. There is no method in pyexiv2 metadata
+# called getThumbnailData.
 def read_thumbdata(image):
     try:
         return image.getThumbnailData()
@@ -211,7 +216,9 @@
     if (thumbdata is None):
         return ''
     try:
-        image.setThumbnailData(thumbdata)
+        #print "setting thumbdata"
+        image.exif_thumbnail.data = thumbdata
+        #image.setThumbnailData(thumbdata)
         return ''
     except Exception, message:
         return unicode(message)
@@ -234,7 +241,7 @@
 def flush(image, thumbdata):
     warnings = [write_thumbdata(image, thumbdata)]
     try:
-        image.writeMetadata()
+        image.write()
     except Exception, message:
         warnings.append(unicode(message))
     return '\n'.join(warnings)
diff -ur phatch-0.2.7_old/tests/test_suite/utils.py phatch-0.2.7/tests/test_suite/utils.py
--- phatch-0.2.7_old/tests/test_suite/utils.py	2010-03-12 12:29:26.000000000 +0530
+++ phatch-0.2.7/tests/test_suite/utils.py	2011-06-24 21:01:51.834424631 +0530
@@ -168,12 +168,12 @@
     """Compare images metadata"""
     try:
         import pyexiv2
-        image1 = pyexiv2.Image(image1_path)
-        image1.readMetadata()
-        image2 = pyexiv2.Image(image2_path)
-        image2.readMetadata()
-        metadata1 = sorted([(key, image1[key]) for key in image1.exifKeys()])
-        metadata2 = sorted([(key, image2[key]) for key in image2.exifKeys()])
+        image1 = pyexiv2.ImageMetaData(image1_path)
+        image1.read()
+        image2 = pyexiv2.ImageMetaData(image2_path)
+        image2.read()
+        metadata1 = sorted([(key, image1[key]) for key in image1.exif_keys])
+        metadata2 = sorted([(key, image2[key]) for key in image2.exif_keys])
         return metadata1 == metadata2
     except IOError:
         return True