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))

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.