annotate pyntnclick/image_transforms.py @ 797:6b33fc262cef pyntnclick

Typo
author Stefano Rivera <stefano@rivera.za.net>
date Sun, 27 Jan 2013 13:17:50 +0200
parents 1eb1537173ef
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
593
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
1 """Transforms to apply to images when they're loaded."""
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
2
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
3 from pygame.transform import rotate
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
4 from pygame.locals import BLEND_RGBA_MULT, SRCALPHA
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
5 from pygame.surface import Surface
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
6
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
7
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
8 class Transform(object):
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
9
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
10 def __init__(self, func, *args):
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
11 self._func = func
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
12 self._args = args
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
13
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
14 def __call__(self, image):
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
15 return self._func(image, *self._args)
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
16
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
17 def __hash__(self):
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
18 return hash((id(self._func), self._args))
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
19
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
20 def __eq__(self, other):
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
21 return (self._func is other._func) and self._args == other._args
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
22
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
23 def __repr__(self):
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
24 return "<%s args=%r>" % (self.__class__.__name__, self._args)
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
25
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
26
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
27 # transform that does nothing
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
28 NULL = Transform(lambda x: x)
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
29
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
30 # base rotation transforms
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
31 R90 = Transform(rotate, 90)
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
32 R180 = Transform(rotate, 180)
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
33 R270 = Transform(rotate, -90)
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
34
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
35
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
36 # overlays
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
37 class Overlay(Transform):
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
38 """Overlay another image on top of the given one."""
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
39
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
40 def __init__(self, resources, image_name_fragments, blend=0):
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
41 super(Overlay, self).__init__(
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
42 self.overlay, resources, image_name_fragments, blend)
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
43
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
44 def overlay(self, image, resources, image_name_fragments, blend):
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
45 image = image.copy()
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
46 overlay = resources.load_image(image_name_fragments)
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
47 image.blit(overlay, (0, 0), None, blend)
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
48 return image
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
49
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
50
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
51 # colour overlays
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
52 class Colour(Transform):
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
53 """Overlay an image with a colour."""
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
54
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
55 def __init__(self, colour, blend=BLEND_RGBA_MULT):
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
56 super(Colour, self).__init__(self.colour, colour, blend)
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
57
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
58 def colour(self, image, colour, blend):
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
59 image = image.copy()
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
60 overlay = Surface(image.get_size(), SRCALPHA, image)
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
61 overlay.fill(colour)
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
62 image.blit(overlay, (0, 0), None, blend)
1eb1537173ef Add some image transforms.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
63 return image