author | Tero Marttila <terom@fixme.fi> |
Wed, 01 Jul 2009 20:40:00 +0300 | |
changeset 141 | 9387da0dc183 |
parent 128 | f66bb9f6126a |
permissions | -rw-r--r-- |
57
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
1 |
""" |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
2 |
Per-image gallery state |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
3 |
""" |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
4 |
|
128
f66bb9f6126a
fix Image.cleanup to not do AttributeErrors
Tero Marttila <terom@fixme.fi>
parents:
125
diff
changeset
|
5 |
import filesystem, format, thumbnail, exif, utils |
76 | 6 |
from utils import lazy_load |
12
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
diff
changeset
|
7 |
|
c2d8e9a754a1
Major code restructuring. Version is now 0.5, templates use Mako, and the code is split off into several files under lib/
terom
parents:
diff
changeset
|
8 |
import PIL.Image |
33
4943047bfcb5
merged http://pajukanta.fi/temp/degal_exif_r33.tar.bz2 patch from Japsu
terom
parents:
28
diff
changeset
|
9 |
|
57
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
10 |
class Image (filesystem.File) : |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
11 |
""" |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
12 |
An Image is a filesystem File that represents an image that can be thumbnailed, and handled. |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
13 |
""" |
44
533b7e8b5d3b
strip copyright/license boilerplate from modules, except dexif and formatbytes
Tero Marttila <terom@fixme.fi>
parents:
41
diff
changeset
|
14 |
|
76 | 15 |
def __init__ (self, *args, **kwargs) : |
57
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
16 |
""" |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
17 |
Initialize as an Image based on the given Node, linked with the given previous node |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
18 |
""" |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
19 |
|
77
2a53c5ade434
misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents:
76
diff
changeset
|
20 |
super(Image, self).__init__(*args, **kwargs) |
57
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
21 |
|
141
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
128
diff
changeset
|
22 |
# use config from our folder |
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
128
diff
changeset
|
23 |
self.config = self.parent.config |
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
128
diff
changeset
|
24 |
|
57
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
25 |
# links |
76 | 26 |
self.prev = None |
57
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
27 |
self.next = None |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
28 |
|
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
29 |
# the .html file for this image |
141
9387da0dc183
move .config from filesystem to gallery/folder/image, rename degal_dir to app_dir
Tero Marttila <terom@fixme.fi>
parents:
128
diff
changeset
|
30 |
# XXX: keep .jpg/etc file extension? |
57
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
31 |
self.html = self.parent.subfile(self.basename + '.html') |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
32 |
|
85
7da934333469
move thumbnail rendering from render.py to thumbnail.py, and implement staleness checking for Images, plus index_images for Folder
Tero Marttila <terom@fixme.fi>
parents:
77
diff
changeset
|
33 |
# our preview/thumbnail |
7da934333469
move thumbnail rendering from render.py to thumbnail.py, and implement staleness checking for Images, plus index_images for Folder
Tero Marttila <terom@fixme.fi>
parents:
77
diff
changeset
|
34 |
self.preview = thumbnail.Thumbnail(self, self.parent.preview_dir, self.config.preview_size) |
7da934333469
move thumbnail rendering from render.py to thumbnail.py, and implement staleness checking for Images, plus index_images for Folder
Tero Marttila <terom@fixme.fi>
parents:
77
diff
changeset
|
35 |
self.thumb = thumbnail.Thumbnail(self, self.parent.thumb_dir, self.config.thumb_size) |
7da934333469
move thumbnail rendering from render.py to thumbnail.py, and implement staleness checking for Images, plus index_images for Folder
Tero Marttila <terom@fixme.fi>
parents:
77
diff
changeset
|
36 |
|
57
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
37 |
# info |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
38 |
self.title = self.name |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
39 |
self.description = None |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
40 |
|
77
2a53c5ade434
misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents:
76
diff
changeset
|
41 |
@lazy_load |
115
d5aa320697df
rename Image.pil_image -> Image.img, and shave off ~30ms per image by using Image.resize instead of Image.copy/Image.thumbnail
Tero Marttila <terom@fixme.fi>
parents:
111
diff
changeset
|
42 |
def img (self) : |
57
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
43 |
""" |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
44 |
Loads the image as a PIL.Image |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
45 |
""" |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
46 |
|
77
2a53c5ade434
misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents:
76
diff
changeset
|
47 |
# open it up |
2a53c5ade434
misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents:
76
diff
changeset
|
48 |
return PIL.Image.open(self.path) |
115
d5aa320697df
rename Image.pil_image -> Image.img, and shave off ~30ms per image by using Image.resize instead of Image.copy/Image.thumbnail
Tero Marttila <terom@fixme.fi>
parents:
111
diff
changeset
|
49 |
|
d5aa320697df
rename Image.pil_image -> Image.img, and shave off ~30ms per image by using Image.resize instead of Image.copy/Image.thumbnail
Tero Marttila <terom@fixme.fi>
parents:
111
diff
changeset
|
50 |
@property |
d5aa320697df
rename Image.pil_image -> Image.img, and shave off ~30ms per image by using Image.resize instead of Image.copy/Image.thumbnail
Tero Marttila <terom@fixme.fi>
parents:
111
diff
changeset
|
51 |
def img_size (self) : |
d5aa320697df
rename Image.pil_image -> Image.img, and shave off ~30ms per image by using Image.resize instead of Image.copy/Image.thumbnail
Tero Marttila <terom@fixme.fi>
parents:
111
diff
changeset
|
52 |
""" |
d5aa320697df
rename Image.pil_image -> Image.img, and shave off ~30ms per image by using Image.resize instead of Image.copy/Image.thumbnail
Tero Marttila <terom@fixme.fi>
parents:
111
diff
changeset
|
53 |
Returns the pixel (width, height) resolution tuple of this image. |
d5aa320697df
rename Image.pil_image -> Image.img, and shave off ~30ms per image by using Image.resize instead of Image.copy/Image.thumbnail
Tero Marttila <terom@fixme.fi>
parents:
111
diff
changeset
|
54 |
""" |
d5aa320697df
rename Image.pil_image -> Image.img, and shave off ~30ms per image by using Image.resize instead of Image.copy/Image.thumbnail
Tero Marttila <terom@fixme.fi>
parents:
111
diff
changeset
|
55 |
|
d5aa320697df
rename Image.pil_image -> Image.img, and shave off ~30ms per image by using Image.resize instead of Image.copy/Image.thumbnail
Tero Marttila <terom@fixme.fi>
parents:
111
diff
changeset
|
56 |
return self.img.size |
57
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
57 |
|
77
2a53c5ade434
misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents:
76
diff
changeset
|
58 |
@lazy_load |
2a53c5ade434
misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents:
76
diff
changeset
|
59 |
def exif (self) : |
57
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
60 |
""" |
120
55cb7fc9c8fb
add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
Tero Marttila <terom@fixme.fi>
parents:
118
diff
changeset
|
61 |
Loads the ExifHandler object for this image. |
57
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
62 |
|
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
63 |
Returns None if no exif data was found |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
64 |
""" |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
65 |
|
120
55cb7fc9c8fb
add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
Tero Marttila <terom@fixme.fi>
parents:
118
diff
changeset
|
66 |
# look up using exif |
55cb7fc9c8fb
add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
Tero Marttila <terom@fixme.fi>
parents:
118
diff
changeset
|
67 |
return exif.load(self.config, self) |
77
2a53c5ade434
misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents:
76
diff
changeset
|
68 |
|
2a53c5ade434
misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents:
76
diff
changeset
|
69 |
@lazy_load |
122
292aaba6d6ec
auto-orientation, although no mirroring support yet
Tero Marttila <terom@fixme.fi>
parents:
120
diff
changeset
|
70 |
def orientation (self) : |
292aaba6d6ec
auto-orientation, although no mirroring support yet
Tero Marttila <terom@fixme.fi>
parents:
120
diff
changeset
|
71 |
""" |
292aaba6d6ec
auto-orientation, although no mirroring support yet
Tero Marttila <terom@fixme.fi>
parents:
120
diff
changeset
|
72 |
Loads the orientation of this image as a (mirroring, rotation) tuple, or None, if the information is not available. |
292aaba6d6ec
auto-orientation, although no mirroring support yet
Tero Marttila <terom@fixme.fi>
parents:
120
diff
changeset
|
73 |
""" |
292aaba6d6ec
auto-orientation, although no mirroring support yet
Tero Marttila <terom@fixme.fi>
parents:
120
diff
changeset
|
74 |
|
292aaba6d6ec
auto-orientation, although no mirroring support yet
Tero Marttila <terom@fixme.fi>
parents:
120
diff
changeset
|
75 |
if self.config.with_exif and self.exif : |
292aaba6d6ec
auto-orientation, although no mirroring support yet
Tero Marttila <terom@fixme.fi>
parents:
120
diff
changeset
|
76 |
# try and find it |
292aaba6d6ec
auto-orientation, although no mirroring support yet
Tero Marttila <terom@fixme.fi>
parents:
120
diff
changeset
|
77 |
return self.exif.get_orientation() |
292aaba6d6ec
auto-orientation, although no mirroring support yet
Tero Marttila <terom@fixme.fi>
parents:
120
diff
changeset
|
78 |
|
292aaba6d6ec
auto-orientation, although no mirroring support yet
Tero Marttila <terom@fixme.fi>
parents:
120
diff
changeset
|
79 |
else : |
292aaba6d6ec
auto-orientation, although no mirroring support yet
Tero Marttila <terom@fixme.fi>
parents:
120
diff
changeset
|
80 |
# no exif data |
292aaba6d6ec
auto-orientation, although no mirroring support yet
Tero Marttila <terom@fixme.fi>
parents:
120
diff
changeset
|
81 |
return None |
292aaba6d6ec
auto-orientation, although no mirroring support yet
Tero Marttila <terom@fixme.fi>
parents:
120
diff
changeset
|
82 |
|
292aaba6d6ec
auto-orientation, although no mirroring support yet
Tero Marttila <terom@fixme.fi>
parents:
120
diff
changeset
|
83 |
@lazy_load |
77
2a53c5ade434
misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents:
76
diff
changeset
|
84 |
def metadata (self) : |
57
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
85 |
""" |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
86 |
Load and return the metadata for the image as a dictionary |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
87 |
""" |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
88 |
|
77
2a53c5ade434
misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents:
76
diff
changeset
|
89 |
# load stuff |
85
7da934333469
move thumbnail rendering from render.py to thumbnail.py, and implement staleness checking for Images, plus index_images for Folder
Tero Marttila <terom@fixme.fi>
parents:
77
diff
changeset
|
90 |
stat = self.stat() |
57
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
91 |
|
77
2a53c5ade434
misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents:
76
diff
changeset
|
92 |
# XXX: avoid having to open the image? |
115
d5aa320697df
rename Image.pil_image -> Image.img, and shave off ~30ms per image by using Image.resize instead of Image.copy/Image.thumbnail
Tero Marttila <terom@fixme.fi>
parents:
111
diff
changeset
|
93 |
size = self.img_size |
77
2a53c5ade434
misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents:
76
diff
changeset
|
94 |
|
2a53c5ade434
misc. fixes, it runs now, but HTML output is corrupt (no flattening)
Tero Marttila <terom@fixme.fi>
parents:
76
diff
changeset
|
95 |
# build |
120
55cb7fc9c8fb
add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
Tero Marttila <terom@fixme.fi>
parents:
118
diff
changeset
|
96 |
metadata = [ |
55cb7fc9c8fb
add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
Tero Marttila <terom@fixme.fi>
parents:
118
diff
changeset
|
97 |
("File name", self.name), |
55cb7fc9c8fb
add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
Tero Marttila <terom@fixme.fi>
parents:
118
diff
changeset
|
98 |
("Resolution", "%dx%d" % size), |
55cb7fc9c8fb
add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
Tero Marttila <terom@fixme.fi>
parents:
118
diff
changeset
|
99 |
("File size", format.filesize(stat.st_size)), |
55cb7fc9c8fb
add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
Tero Marttila <terom@fixme.fi>
parents:
118
diff
changeset
|
100 |
("Last modified", format.filetime(stat.st_mtime)), |
55cb7fc9c8fb
add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
Tero Marttila <terom@fixme.fi>
parents:
118
diff
changeset
|
101 |
] |
111
ecceaf23c969
make loading exif metadata optional
Tero Marttila <terom@fixme.fi>
parents:
91
diff
changeset
|
102 |
|
ecceaf23c969
make loading exif metadata optional
Tero Marttila <terom@fixme.fi>
parents:
91
diff
changeset
|
103 |
# optionally load Exif metadata |
120
55cb7fc9c8fb
add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
Tero Marttila <terom@fixme.fi>
parents:
118
diff
changeset
|
104 |
if self.config.with_exif and self.exif : |
55cb7fc9c8fb
add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
Tero Marttila <terom@fixme.fi>
parents:
118
diff
changeset
|
105 |
exif_tag_name = dict(self.config.exif_tags) |
55cb7fc9c8fb
add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
Tero Marttila <terom@fixme.fi>
parents:
118
diff
changeset
|
106 |
exif_tags = (tag for tag, name in self.config.exif_tags) |
111
ecceaf23c969
make loading exif metadata optional
Tero Marttila <terom@fixme.fi>
parents:
91
diff
changeset
|
107 |
|
120
55cb7fc9c8fb
add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
Tero Marttila <terom@fixme.fi>
parents:
118
diff
changeset
|
108 |
# merge the wanted tags |
55cb7fc9c8fb
add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
Tero Marttila <terom@fixme.fi>
parents:
118
diff
changeset
|
109 |
metadata.extend(( |
55cb7fc9c8fb
add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
Tero Marttila <terom@fixme.fi>
parents:
118
diff
changeset
|
110 |
(exif_tag_name[tag], value) for tag, value in self.exif.image_tags(exif_tags) |
111
ecceaf23c969
make loading exif metadata optional
Tero Marttila <terom@fixme.fi>
parents:
91
diff
changeset
|
111 |
)) |
ecceaf23c969
make loading exif metadata optional
Tero Marttila <terom@fixme.fi>
parents:
91
diff
changeset
|
112 |
|
ecceaf23c969
make loading exif metadata optional
Tero Marttila <terom@fixme.fi>
parents:
91
diff
changeset
|
113 |
return metadata |
57
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
114 |
|
85
7da934333469
move thumbnail rendering from render.py to thumbnail.py, and implement staleness checking for Images, plus index_images for Folder
Tero Marttila <terom@fixme.fi>
parents:
77
diff
changeset
|
115 |
def stale (self) : |
57
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
116 |
""" |
85
7da934333469
move thumbnail rendering from render.py to thumbnail.py, and implement staleness checking for Images, plus index_images for Folder
Tero Marttila <terom@fixme.fi>
parents:
77
diff
changeset
|
117 |
Tests if this Image is stale, based on preview/thumb. |
57
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
118 |
""" |
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
119 |
|
85
7da934333469
move thumbnail rendering from render.py to thumbnail.py, and implement staleness checking for Images, plus index_images for Folder
Tero Marttila <terom@fixme.fi>
parents:
77
diff
changeset
|
120 |
return self.preview.stale() or self.thumb.stale() |
70
67dd32adf159
remove old Folder, Image code, wrap up both
Tero Marttila <terom@fixme.fi>
parents:
57
diff
changeset
|
121 |
|
85
7da934333469
move thumbnail rendering from render.py to thumbnail.py, and implement staleness checking for Images, plus index_images for Folder
Tero Marttila <terom@fixme.fi>
parents:
77
diff
changeset
|
122 |
def update (self) : |
70
67dd32adf159
remove old Folder, Image code, wrap up both
Tero Marttila <terom@fixme.fi>
parents:
57
diff
changeset
|
123 |
""" |
85
7da934333469
move thumbnail rendering from render.py to thumbnail.py, and implement staleness checking for Images, plus index_images for Folder
Tero Marttila <terom@fixme.fi>
parents:
77
diff
changeset
|
124 |
Updates this Image's thumb/preview |
70
67dd32adf159
remove old Folder, Image code, wrap up both
Tero Marttila <terom@fixme.fi>
parents:
57
diff
changeset
|
125 |
""" |
85
7da934333469
move thumbnail rendering from render.py to thumbnail.py, and implement staleness checking for Images, plus index_images for Folder
Tero Marttila <terom@fixme.fi>
parents:
77
diff
changeset
|
126 |
|
91
17ae33501289
change Image.update to unconditionally update the thumb/preview
Tero Marttila <terom@fixme.fi>
parents:
85
diff
changeset
|
127 |
self.preview.update() |
17ae33501289
change Image.update to unconditionally update the thumb/preview
Tero Marttila <terom@fixme.fi>
parents:
85
diff
changeset
|
128 |
self.thumb.update() |
123
31c4a328ef96
move the uncache-del's from commands.main to Image.cleanup, and call it after rendering each image's thumbs
Tero Marttila <terom@fixme.fi>
parents:
122
diff
changeset
|
129 |
|
31c4a328ef96
move the uncache-del's from commands.main to Image.cleanup, and call it after rendering each image's thumbs
Tero Marttila <terom@fixme.fi>
parents:
122
diff
changeset
|
130 |
def cleanup (self) : |
31c4a328ef96
move the uncache-del's from commands.main to Image.cleanup, and call it after rendering each image's thumbs
Tero Marttila <terom@fixme.fi>
parents:
122
diff
changeset
|
131 |
""" |
125
74f135774567
fix rotated size of auto-oriented thumbnails, and throw some code at mirroring - untested
Tero Marttila <terom@fixme.fi>
parents:
123
diff
changeset
|
132 |
Drop some memory-intensive cached values |
123
31c4a328ef96
move the uncache-del's from commands.main to Image.cleanup, and call it after rendering each image's thumbs
Tero Marttila <terom@fixme.fi>
parents:
122
diff
changeset
|
133 |
""" |
128
f66bb9f6126a
fix Image.cleanup to not do AttributeErrors
Tero Marttila <terom@fixme.fi>
parents:
125
diff
changeset
|
134 |
|
f66bb9f6126a
fix Image.cleanup to not do AttributeErrors
Tero Marttila <terom@fixme.fi>
parents:
125
diff
changeset
|
135 |
utils.unload(self, 'img', 'exif', 'metadata') |
57
8d06e0283b88
start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents:
44
diff
changeset
|
136 |