Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter@sugarlabs.org>2010-08-13 00:55:36 (GMT)
committer Walter Bender <walter@sugarlabs.org>2010-08-13 00:55:36 (GMT)
commitefa330586797db2a6e5db781608b7e29273ffdbd (patch)
treea5065c8aa5865ead98f274bb6a902f6ee9dd621f
parent6283970ab85ed098c30f9d2dfa06d677ef1f7ebb (diff)
consider color mode when reading pixel
-rw-r--r--TurtleArt/sprites.py13
-rw-r--r--TurtleArt/tacanvas.py3
2 files changed, 11 insertions, 5 deletions
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)