--- /dev/null
+from PIL import Image, ImageFilter
+import src.im_debug as imd
+
+rr , gg, bb = 0, 0, 0
+s = 0
+
+def color_quant(image):
+ # TODO comment
+ image_l = image.load()
+ new_image = Image.new('RGB', image.size)
+ new_image_l = new_image.load()
+
+ def nearest((r, g, b)):
+ global rr, gg, bb, s
+ o = ((r - 166) ** 2 + (g - 166) ** 2 + (b - 166) ** 2, (166, 166, 166))
+ bl = (r * r + g * g + b * b, (0, 0, 0))
+ r, g, b = r - 255, g - 255, b - 255
+ w = (r * r + g * g + b * b, (255, 255, 255))
+ if min([o, bl, w]) == o:
+ rr += r + 255
+ gg += g + 255
+ bb += b + 255
+ s += 1
+ return min([o, bl, w])[1]
+
+ new_image = Image.new('RGB', image.size)
+ new_image_l = new_image.load()
+ for x in xrange(image.size[0]):
+ for y in xrange(image.size[1]):
+ new_image_l[x, y] = nearest(image_l[x, y])
+
+ print rr / s, gg /s, bb /s
+
+ return new_image
+
+im = Image.open('image.jpg')
+imd.show(color_quant(im))
+
+