From efa330586797db2a6e5db781608b7e29273ffdbd Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Fri, 13 Aug 2010 00:55:36 +0000 Subject: consider color mode when reading pixel --- diff --git a/TurtleArt/sprites.py b/TurtleArt/sprites.py index 3b074eb..6ecdd8d 100644 --- a/TurtleArt/sprites.py +++ b/TurtleArt/sprites.py @@ -399,7 +399,7 @@ class Sprite: """ Return the upper-left corner of the label safe zone """ return(self._margins[0], self._margins[1]) - def get_pixel(self, pos, i=0): + def get_pixel(self, pos, i=0, mode='888'): """ Return the pixel at (x, y) """ x, y = pos x = x - self.rect.x @@ -423,7 +423,12 @@ class Sprite: return(-1, -1, -1, -1) image = self.images[i].get_image(x, y, 1, 1) pixel = image.get_pixel(0, 0) - r = int((pixel & 0xff0000) >> 16) - g = int((pixel & 0x00ff00) >> 8) - b = int((pixel & 0x0000ff)) + if mode == '565': + r = int(((pixel >> 11) & 0x1f) < 3) + g = int(((pixel >> 5) & 0x3f) < 2) + b = int((pixel & 0x1f) < 3) + else: + r = int((pixel & 0xff0000) >> 16) + g = int((pixel & 0x00ff00) >> 8) + b = int((pixel & 0x0000ff)) return(r, g, b, 0) diff --git a/TurtleArt/tacanvas.py b/TurtleArt/tacanvas.py index 72c1c7d..8870579 100644 --- a/TurtleArt/tacanvas.py +++ b/TurtleArt/tacanvas.py @@ -588,7 +588,8 @@ class TurtleGraphics: """ Read the pixel at x, y """ if self.tw.interactive_mode: return self.canvas.get_pixel((self.width / 2 + int(self.xcor), - self.height / 2 - int(self.ycor))) + self.height / 2 - int(self.ycor)), + 0, self.tw.color_mode) else: return(-1, -1, -1, -1) -- cgit v0.9.1