# HG changeset patch # User Paul Boddie # Date 1444485849 -7200 # Node ID ab5c1ce7de8f3717eb631d4464fe0fceb4fc381c # Parent 86d83f74ef9a7e053a38b59c6e50762dc2c0866f Moved the SimpleImage class into the extension module. (This seems to slow the program down somewhat.) diff -r 86d83f74ef9a -r ab5c1ce7de8f optimiser.py --- a/optimiser.py Sat Oct 10 15:59:38 2015 +0200 +++ b/optimiser.py Sat Oct 10 16:04:09 2015 +0200 @@ -210,28 +210,6 @@ except ValueError: return 0.0 -class SimpleImage: - - "An image behaving like PIL.Image." - - def __init__(self, data, size): - self.data = data - self.width, self.height = self.size = size - - def copy(self): - return SimpleImage(self.data[:], self.size) - - def getpixel(self, xy): - x, y = xy - return self.data[y * self.width + x] - - def putpixel(self, xy, value): - x, y = xy - self.data[y * self.width + x] = value - - def getdata(self): - return self.data - # Main program. if __name__ == "__main__": diff -r 86d83f74ef9a -r ab5c1ce7de8f optimiserlib.py --- a/optimiserlib.py Sat Oct 10 15:59:38 2015 +0200 +++ b/optimiserlib.py Sat Oct 10 16:04:09 2015 +0200 @@ -191,6 +191,28 @@ all.sort(reverse=True) return [l for total, l in all] +class SimpleImage: + + "An image behaving like PIL.Image." + + def __init__(self, data, size): + self.data = data + self.width, self.height = self.size = size + + def copy(self): + return SimpleImage(self.data[:], self.size) + + def getpixel(self, xy): + x, y = xy + return self.data[y * self.width + x] + + def putpixel(self, xy, value): + x, y = xy + self.data[y * self.width + x] = value + + def getdata(self): + return self.data + # Exercise functions for Shedskin. if __name__ == "__main__": @@ -203,4 +225,11 @@ clip(200.0) get_combinations([(0.5, (255, 0, 0)), (0.25, (255, 255, 0)), (0.25, (0, 0, 0))], 2) + data = [(0, 0, 0), (0, 0, 0)] + im = SimpleImage(data, (2, 1)) + im2 = im.copy() + im2.getpixel((0, 0)) == (0, 0, 0) + im2.putpixel((0, 0), (255, 255, 255)) + im2.getdata() == [(255, 255, 255), (0, 0, 0)] + # vim: tabstop=4 expandtab shiftwidth=4