From 65ad4264d6791ab4a9c47c885fc8ac23fa24ef25 Mon Sep 17 00:00:00 2001 From: flavio Date: Sat, 17 Aug 2013 16:55:17 +0000 Subject: Corrección y mejora en pixbuf to string. --- diff --git a/PollSession.py b/PollSession.py index 9feb117..af01a7f 100644 --- a/PollSession.py +++ b/PollSession.py @@ -19,11 +19,13 @@ # your own creations we would love to hear from you at # info@WorldWideWorkshop.org ! +import os import cPickle import logging import base64 from datetime import date +from gettext import gettext as _ from gi.repository import GdkPixbuf @@ -188,21 +190,19 @@ class Poll(): else: raise ValueError('Poll closed') - - def _pixbuf_save_cb(self, buf, data): - - data[0] += buf - - return True def get_buffer(self, pixbuf): + + path = "/dev/shm/pix.png" + pixbuf.savev(path, "png", [], []) + + pixbuf_file = open(path, 'rb') + image_string = base64.b64encode(pixbuf_file.read()) + pixbuf_file.close() - # FIXME: save_to_callback No Funciona. - #data = [""] - #pixbuf.save_to_callback(self._pixbuf_save_cb, "png", {}, data) + os.remove(path) - #return str(data[0]) - return "" + return image_string def broadcast_on_mesh(self): @@ -211,8 +211,7 @@ class Poll(): for img_number, img_pixbuf in self.images.iteritems(): if not img_pixbuf == '': - images_buf[img_number] = base64.b64encode( - self.get_buffer(img_pixbuf)) + images_buf[img_number] = self.get_buffer(img_pixbuf) else: images_buf[img_number] = img_pixbuf @@ -371,8 +370,7 @@ class PollSession(ExportedGObject): for img_number, img_pixbuf in poll.images.iteritems(): if not img_pixbuf == '': - images_buf[img_number] = base64.b64encode( - poll.get_buffer(img_pixbuf)) + images_buf[img_number] = poll.get_buffer(img_pixbuf) else: images_buf[img_number] = img_pixbuf @@ -417,8 +415,7 @@ class PollSession(ExportedGObject): for img_number, img_pixbuf in poll.images.iteritems(): if not img_pixbuf == '': - images_buf[img_number] = base64.b64encode( - poll.get_buffer(img_pixbuf)) + images_buf[img_number] = poll.get_buffer(img_pixbuf) else: images_buf[img_number] = img_pixbuf @@ -598,8 +595,7 @@ class PollSession(ExportedGObject): for img_number, img_pixbuf in poll.images.iteritems(): if not img_pixbuf == '': - images_buf[img_number] = base64.b64encode( - poll.get_buffer(img_pixbuf)) + images_buf[img_number] = poll.get_buffer(img_pixbuf) else: images_buf[img_number] = img_pixbuf -- cgit v0.9.1