changeset 3b1a0fa58aec in /home/hg/repos/gajim
author: tmolitor thilo@eightysoft.de branches: details:http://hg.gajim.org/gajim?cmd=changeset;node=3b1a0fa58aec description: use pixbuf.new_from_bytes() instead of broken pixbuf.new_from_data()
diffstat:
src/gtkgui_helpers.py | 17 ++++++----------- 1 files changed, 6 insertions(+), 11 deletions(-)
diffs (35 lines):
diff -r 54b0608a5886 -r 3b1a0fa58aec src/gtkgui_helpers.py --- a/src/gtkgui_helpers.py Tue Apr 12 22:53:41 2016 +0200 +++ b/src/gtkgui_helpers.py Fri Apr 15 01:37:08 2016 +0200 @@ -436,17 +436,12 @@ pixbufloader.close()
# try to open and convert this image to png using pillow (if available) - log.debug("loading avatar using pixbufloader directly failed, trying to convert avatar image using pillow (if available)") - pixbufloader = GdkPixbuf.PixbufLoader() + log.debug("loading avatar using pixbufloader failed, trying to convert avatar image using pillow (if available)") try: - avatar = Image.open(BytesIO(file_data)) - output = BytesIO() - avatar.save(output, format='PNG') - file_data = output.getvalue() - output.close() - pixbufloader.write(file_data) - pixbufloader.close() - pixbuf = pixbufloader.get_pixbuf() + avatar = Image.open(BytesIO(file_data)).convert("RGBA") + arr = GLib.Bytes.new(avatar.tobytes()) + width, height = avatar.size + pixbuf = GdkPixbuf.Pixbuf.new_from_bytes(arr, GdkPixbuf.Colorspace.RGB, True, 8, width, height, width * 4) except: log.info("Could not use pillow to convert avatar image, image cannot be displayed") if want_type: @@ -455,7 +450,7 @@ return None
if want_type: - typ = pixbufloader.get_format().get_name() + typ = pixbufloader.get_format() and pixbufloader.get_format().get_name() or None return pixbuf, typ else: return pixbuf