1.1 --- a/optimiserlib.py Sat Oct 10 15:59:38 2015 +0200
1.2 +++ b/optimiserlib.py Sat Oct 10 16:04:09 2015 +0200
1.3 @@ -191,6 +191,28 @@
1.4 all.sort(reverse=True)
1.5 return [l for total, l in all]
1.6
1.7 +class SimpleImage:
1.8 +
1.9 + "An image behaving like PIL.Image."
1.10 +
1.11 + def __init__(self, data, size):
1.12 + self.data = data
1.13 + self.width, self.height = self.size = size
1.14 +
1.15 + def copy(self):
1.16 + return SimpleImage(self.data[:], self.size)
1.17 +
1.18 + def getpixel(self, xy):
1.19 + x, y = xy
1.20 + return self.data[y * self.width + x]
1.21 +
1.22 + def putpixel(self, xy, value):
1.23 + x, y = xy
1.24 + self.data[y * self.width + x] = value
1.25 +
1.26 + def getdata(self):
1.27 + return self.data
1.28 +
1.29 # Exercise functions for Shedskin.
1.30
1.31 if __name__ == "__main__":
1.32 @@ -203,4 +225,11 @@
1.33 clip(200.0)
1.34 get_combinations([(0.5, (255, 0, 0)), (0.25, (255, 255, 0)), (0.25, (0, 0, 0))], 2)
1.35
1.36 + data = [(0, 0, 0), (0, 0, 0)]
1.37 + im = SimpleImage(data, (2, 1))
1.38 + im2 = im.copy()
1.39 + im2.getpixel((0, 0)) == (0, 0, 0)
1.40 + im2.putpixel((0, 0), (255, 255, 255))
1.41 + im2.getdata() == [(255, 255, 255), (0, 0, 0)]
1.42 +
1.43 # vim: tabstop=4 expandtab shiftwidth=4