author | Tero Marttila <terom@fixme.fi> |
Thu, 11 Jun 2009 21:26:05 +0300 | |
branch | threaded-tasks |
changeset 89 | 4b254a90d6d0 |
parent 85 | 7da934333469 |
child 95 | 3b00bd676fc9 |
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 |
|
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
|
22 |
# our file path |
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
|
23 |
# XXX: this should be the binary fsname, not name |
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 |
super(Thumbnail, self).__init__(subdir.subnode(image.name)) |
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 |
|
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 |
# 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
|
27 |
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
|
28 |
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
|
29 |
|
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 |
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
|
31 |
""" |
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 |
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
|
33 |
""" |
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
|
34 |
|
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
|
35 |
return self.older_than(self.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
|
36 |
|
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
|
37 |
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
|
38 |
""" |
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
|
39 |
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
|
40 |
""" |
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 |
# 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
|
43 |
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
|
44 |
|
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 |
# 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
|
46 |
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
|
47 |
|
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 |
# 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
|
49 |
thumb.save(self.path) |
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 |