degal/thumbnail.py
changeset 122 292aaba6d6ec
parent 116 2d3721b9ffd0
child 123 31c4a328ef96
--- a/degal/thumbnail.py	Sun Jun 14 23:57:50 2009 +0300
+++ b/degal/thumbnail.py	Mon Jun 15 00:23:55 2009 +0300
@@ -63,15 +63,49 @@
             height = thumb_height
         
         return width, height 
+    
+    def resize (self, img) :
+        """
+            Resize the give image as needed.
+        """
+
+        return img.resize(self.size, resample=PIL.Image.ANTIALIAS)
+    
+    def auto_orient (self, img, orient_info) :
+        """
+            Automatically orient the image using the given orientation info.
+        """
+        
+        # unpack
+        mirroring, rotation = orient_info
+
+        if mirroring :
+            # XXX
+            pass
+
+        if rotation :
+            # since these are in steps of 90 degrees, it should keep the right size
+            # but gah, PIL wants these as counter-clockwise!
+            img = img.rotate(360 - rotation)
+        
+        # ok
+        return img
 
     def update (self) :
         """
             Render new output thumbnail.
         """
 
+        # start with origional image
+        img = self.image.img
+
         # create resized copy of main image, using our size
-        thumb = self.image.img.resize(self.size, resample=PIL.Image.ANTIALIAS)
+        img = self.resize(img)
+
+        # got orientation info?
+        if self.image.orientation :
+            img = self.auto_orient(img, self.image.orientation)
 
         # write it out
-        thumb.save(self.path)
+        img.save(self.path)