author | Tero Marttila <terom@fixme.fi> |
Sat, 13 Jun 2009 19:21:12 +0300 | |
branch | new-exif |
changeset 103 | 63e89dc2d6f1 |
parent 95 | 3b00bd676fc9 |
child 115 | d5aa320697df |
permissions | -rw-r--r-- |
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:
diff
changeset
|
1 |
""" |
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:
diff
changeset
|
2 |
State for thumbnails; derivates of Images |
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:
diff
changeset
|
3 |
""" |
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:
diff
changeset
|
4 |
|
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:
diff
changeset
|
5 |
import filesystem |
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:
diff
changeset
|
6 |
|
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:
diff
changeset
|
7 |
import PIL.Image |
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:
diff
changeset
|
8 |
|
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:
diff
changeset
|
9 |
class Thumbnail (filesystem.File) : |
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:
diff
changeset
|
10 |
""" |
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:
diff
changeset
|
11 |
A Thumbnail is a derivate of an Image, usually resized to some other 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:
diff
changeset
|
12 |
""" |
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:
diff
changeset
|
13 |
|
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:
diff
changeset
|
14 |
def __init__ (self, image, subdir, 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:
diff
changeset
|
15 |
""" |
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:
diff
changeset
|
16 |
Initialize to link against the given `image`. |
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:
diff
changeset
|
17 |
|
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:
diff
changeset
|
18 |
`subdir` specifies the directory to store this thumbnail in. |
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:
diff
changeset
|
19 |
`size` determines the target resolution of the output 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:
diff
changeset
|
20 |
""" |
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:
diff
changeset
|
21 |
|
95
3b00bd676fc9
fix Thumbnail.stale/File.older_than behaviour
Tero Marttila <terom@fixme.fi>
parents:
85
diff
changeset
|
22 |
# our file path, image name inside of the given subdir |
3b00bd676fc9
fix Thumbnail.stale/File.older_than behaviour
Tero Marttila <terom@fixme.fi>
parents:
85
diff
changeset
|
23 |
super(Thumbnail, self).__init__(subdir, image.fsname) |
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:
diff
changeset
|
24 |
|
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:
diff
changeset
|
25 |
# store |
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:
diff
changeset
|
26 |
self.image = image |
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:
diff
changeset
|
27 |
self.size = 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:
diff
changeset
|
28 |
|
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:
diff
changeset
|
29 |
def stale (self) : |
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:
diff
changeset
|
30 |
""" |
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:
diff
changeset
|
31 |
Tests if this thumbnail is stale |
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:
diff
changeset
|
32 |
""" |
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:
diff
changeset
|
33 |
|
95
3b00bd676fc9
fix Thumbnail.stale/File.older_than behaviour
Tero Marttila <terom@fixme.fi>
parents:
85
diff
changeset
|
34 |
if self.image.older_than(self) : |
3b00bd676fc9
fix Thumbnail.stale/File.older_than behaviour
Tero Marttila <terom@fixme.fi>
parents:
85
diff
changeset
|
35 |
# both exist and this is newer |
3b00bd676fc9
fix Thumbnail.stale/File.older_than behaviour
Tero Marttila <terom@fixme.fi>
parents:
85
diff
changeset
|
36 |
return False |
3b00bd676fc9
fix Thumbnail.stale/File.older_than behaviour
Tero Marttila <terom@fixme.fi>
parents:
85
diff
changeset
|
37 |
|
3b00bd676fc9
fix Thumbnail.stale/File.older_than behaviour
Tero Marttila <terom@fixme.fi>
parents:
85
diff
changeset
|
38 |
else : |
3b00bd676fc9
fix Thumbnail.stale/File.older_than behaviour
Tero Marttila <terom@fixme.fi>
parents:
85
diff
changeset
|
39 |
# this thumb doesn't exist or is older |
3b00bd676fc9
fix Thumbnail.stale/File.older_than behaviour
Tero Marttila <terom@fixme.fi>
parents:
85
diff
changeset
|
40 |
return True |
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:
diff
changeset
|
41 |
|
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:
diff
changeset
|
42 |
def update (self) : |
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:
diff
changeset
|
43 |
""" |
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:
diff
changeset
|
44 |
Render new output 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:
diff
changeset
|
45 |
""" |
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:
diff
changeset
|
46 |
|
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:
diff
changeset
|
47 |
# load a copy of the PIL.Image, as .thumbnail mutates it |
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:
diff
changeset
|
48 |
thumb = self.image.pil_image.copy() |
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:
diff
changeset
|
49 |
|
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:
diff
changeset
|
50 |
# resample to given 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:
diff
changeset
|
51 |
thumb.thumbnail(self.size, resample=True) |
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:
diff
changeset
|
52 |
|
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:
diff
changeset
|
53 |
# and write out |
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:
diff
changeset
|
54 |
thumb.save(self.path) |
95
3b00bd676fc9
fix Thumbnail.stale/File.older_than behaviour
Tero Marttila <terom@fixme.fi>
parents:
85
diff
changeset
|
55 |