degal/image.py
changeset 76 e22d9f699081
parent 70 67dd32adf159
child 77 2a53c5ade434
equal deleted inserted replaced
75:18b3b1926720 76:e22d9f699081
     3 """
     3 """
     4 
     4 
     5 from __future__ import with_statement
     5 from __future__ import with_statement
     6 
     6 
     7 import filesystem, render, html
     7 import filesystem, render, html
       
     8 from utils import lazy_load
     8 
     9 
     9 import PIL.Image
    10 import PIL.Image
    10 from lib import EXIF
    11 from lib import EXIF
    11 
    12 
    12 class Image (filesystem.File) :
    13 class Image (filesystem.File) :
    13     """
    14     """
    14         An Image is a filesystem File that represents an image that can be thumbnailed, and handled.
    15         An Image is a filesystem File that represents an image that can be thumbnailed, and handled.
    15     """
    16     """
    16 
    17 
    17     def __init__ (self, node, prev) :
    18     def __init__ (self, *args, **kwargs) :
    18         """
    19         """
    19             Initialize as an Image based on the given Node, linked with the given previous node
    20             Initialize as an Image based on the given Node, linked with the given previous node
    20         """
    21         """
    21 
    22 
    22         super(Image, self).__init__(node)
    23         super(Image, self).__init__(node)
    23 
    24 
    24         # links
    25         # links
    25         self.prev = prev
    26         self.prev = None
    26         self.next = None
    27         self.next = None
    27 
    28 
    28         # the .html file for this image
    29         # the .html file for this image
    29         self.html = self.parent.subfile(self.basename + '.html')
    30         self.html = self.parent.subfile(self.basename + '.html')
    30 
    31 
   113         # renderer to use
   114         # renderer to use
   114         # XXX: get from elsewhere
   115         # XXX: get from elsewhere
   115         render_machine = self.config.get_renderer()
   116         render_machine = self.config.get_renderer()
   116 
   117 
   117         # render if needed
   118         # render if needed
   118         return render_machine.render_lazy(self
   119         return render_machine.render_lazy(self,
   119             self.config.thumb_size, self.parent.load_thumb_dir.subnode(self.name)
   120             self.config.thumb_size, self.parent.load_thumb_dir.subnode(self.name)
   120         )
   121         )
   121     
   122     
   122     @lazy_load
   123     @lazy_load
   123     def preview (self) :
   124     def preview (self) :