diff options
author | Gonzalo Odiard <godiard@sugarlabs.org> | 2010-12-05 03:24:36 (GMT) |
---|---|---|
committer | Gonzalo Odiard <godiard@sugarlabs.org> | 2010-12-05 03:24:36 (GMT) |
commit | 5ddde9d8119e70c9ba2698086784cd504757608b (patch) | |
tree | dbfa2ad12abb5770f7a35fc85c31d88ba8c54b26 | |
parent | 4676bf91fcb79a602110f1fe6c6a5759eab3502f (diff) |
Fix invert colors in F11 - OLPC #2495
-rw-r--r-- | Area.py | 23 |
1 files changed, 17 insertions, 6 deletions
@@ -69,7 +69,6 @@ import os import tempfile import math import pango -import numpy from fill import * from Desenho import Desenho from urlparse import urlparse @@ -961,11 +960,23 @@ class Area(gtk.DrawingArea): pix.get_from_drawable(self.pixmap, gtk.gdk.colormap_get_system(), 0, 0, 0, 0, width, height) - pix_manip2 = pix.get_pixels_array() - pix_manip = numpy.ones(pix_manip2.shape, dtype=numpy.uint8) * 255 - pix_manip2 = pix_manip - pix_manip2 - pix = gtk.gdk.pixbuf_new_from_array(pix_manip2, gtk.gdk.COLORSPACE_RGB, - 8) + try: + import numpy + pix_manip2 = pix.get_pixels_array() + pix_manip = numpy.ones(pix_manip2.shape, dtype=numpy.uint8) * 255 + pix_manip2 = pix_manip - pix_manip2 + pix = gtk.gdk.pixbuf_new_from_array(pix_manip2, + gtk.gdk.COLORSPACE_RGB, 8) + except: + import string + a = pix.get_pixels() + b = len(a) * ['\0'] + for i in range(len(a)): + b[i] = chr(255 - ord(a[i])) + buff = string.join(b, '') + pix = gtk.gdk.pixbuf_new_from_data(buff, pix.get_colorspace(), + pix.get_has_alpha(), pix.get_bits_per_sample(), + pix.get_width(), pix.get_height(), pix.get_rowstride()) if self.selmove: self.pixmap_sel.draw_pixbuf(self.gc, pix, 0, 0, 0, 0, |