From bc6ec37e87d81367f97157dfd3366f4938c8af00 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Thu, 12 Aug 2010 22:41:29 +0000 Subject: Turtle 'sees' --- (limited to 'TurtleArt/tacanvas.py') diff --git a/TurtleArt/tacanvas.py b/TurtleArt/tacanvas.py index 667cc0f..72c1c7d 100644 --- a/TurtleArt/tacanvas.py +++ b/TurtleArt/tacanvas.py @@ -566,6 +566,24 @@ class TurtleGraphics: int(w), int(h)), False) + def get_color_index(self, r, g, b, a=0): + """ Find the closest palette entry to the rgb triplet """ + # TODO: Take into account gray and shade levels + min_distance = 1000000 + closest_color = -1 + for i, c in enumerate(color_table): + cr = int((c & 0xff0000) >> 16) + cg = int((c & 0x00ff00) >> 8) + cb = int((c & 0x0000ff)) + distance_squared = ((cr - r) ** 2) + ((cg - g) ** 2) + \ + ((cb - b) ** 2) + if distance_squared == 0: + return i + if distance_squared < min_distance: + min_distance = distance_squared + closest_color = i + return closest_color + def get_pixel(self): """ Read the pixel at x, y """ if self.tw.interactive_mode: -- cgit v0.9.1