1 """ Image transformations for use with the image loader. """
6 class Transform(object):
10 def __init__(self, **kw):
12 setattr(self, k, kw.pop(k))
14 self._repr = "%s: <%s>" % (
15 self.__class__.__name__,
16 ", ".join("%s=%s" % (k, getattr(self, k)) for k in self.ARGS))
23 return hash(self._repr)
25 def __eq__(self, other):
26 if not isinstance(other, Transform):
28 return self._repr == other._repr
30 def apply(self, surface):
31 raise NotImplementedError("Transforms should implement .apply")
34 class NullTransform(Transform):
37 def apply(self, surface):
41 class Overlay(Transform):
42 """ Apply a colour overlay. """
46 def apply(self, surface):
47 over = pygame.surface.Surface(surface.get_size())
48 over = over.convert_alpha()
49 over.fill(self.colour)
50 surface.blit(over, (0, 0), None)