0

hopefully someone can help.

I had MintKDE installed on my laptop, and as I recall Phatch would not load - instead I just got the logo, but the program itself never started. I applied the changes detailed here - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=811184#12 - and it then worked.

I've recently changed OS to Kubuntu, and Phatch now does not load - the symptoms are the same - I get a Phatch logo, but it never actaully starts. I've removed it and reinstalled it, and tried the changes as detailed, but it still will not load.

I wonder if anyone could help? Phatch saves me a lot of time when it works!

Thanks.


Kubuntu 17.04 Plasma 5.9.4 KDE Framweworks 5.31.0 Kernel 4.10.0-22generic OS Type 64 bit

1 Answer 1

0

I had the same problem and this fix helped:

In the file /usr/share/phatch/phatch/lib/pyWx/wxPil.py I changed the words fromstring and tostring to frombytes and tobytes.

Now Phatch seems to work with the latest python-imaging and python-pil libraries in Sid.

Below is my new /usr/share/phatch/phatch/lib/pyWx/wxPil.py:

# Copyright (C) 2007-2009 www.stani.be
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see http://www.gnu.org/licenses/

# Follows PEP8

import Image
import wx


def pil_wxImage(image):
    if image.mode == 'P':
        image = image.convert('RGBA')
    if image.mode == 'RGBA':
        wx_image = wx.EmptyImage(*image.size)
        wx_image.SetData(image.convert("RGB").tobytes())
        wx_image.InitAlpha()
        wx_image.SetAlphaData(
            image.convert("RGBA").split()[-1].tobytes())
    else:
        wx_image = wx.EmptyImage(*image.size)
        new_image = image.convert('RGB')
        data = new_image.tobytes()
        wx_image.SetData(data)
    return wx_image


def pil_wxBitmap(image):
    return wx.BitmapFromImage(pil_wxImage(image))


def wxImage_pil(wx_image):
    size = wx_image.GetSize()
    image = Image.new('RGB', size)
    image.frombytes(wx_image.GetData())
    if wx_image.HasAlpha():
        alpha = Image.new('L', size)
        wx_alpha = wx_image.GetAlphaData()
        alpha.frombytes(wx_alpha)
        image = image.convert('RGBA')
        image.putalpha(alpha)
    return image


def wxBitmap_pil(wx_bitmap):
    return wxImage_pil(wx.ImageFromBitmap(wx_bitmap))

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .