3 from PIL import Image as PIL_Image
4 from libxmp import consts
5 from libxmp import XMPFiles
6 from treecutter.tools import sizeof_fmt
10 """Class representing an image"""
11 def __init__(self,filename):
12 self._filename = filename
16 image = PIL_Image.open(self._filename)
19 byte = os.path.getsize(self._filename)
20 return "[%dx%d (%s)]" % (w,d,sizeof_fmt(byte))
24 outfile, ext = os.path.splitext(self._filename)
25 outfile = "%s.%dx%d.%s" % (outfile, size[0], size[1], ext)
26 if not os.path.exists(outfile):
27 im = PIL_Image.open(infile)
28 im.thumbnail(size, PIL_Image.ANTIALIAS)
29 bg = PIL_Image.new('RGBA', size, (0, 0, 0, 0))
30 bg.paste(im,((size[0]-im.size[0])/2, (size[1]-im.size[1])/2))
32 self._format[size] = outfile
35 def set_generated(self):
42 return image.resize(50,50)
45 return image.resize(700,438)
48 xmpfile = XMPFiles(file_path=self._filename)
49 xmp = xmpfile.get_xmp()
50 cap = xmp.get_property(consts.XMP_NS_DC, 'description[1]' )