[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-kimageshop
Subject:    Re: Contributing our batch sprites export plugin - need pointers
From:       Boudewijn Rempt <boud () valdyas ! org>
Date:       2019-07-23 8:53:21
Message-ID: 4304408.5RxkKK7s4p () sebe
[Download RAW message or body]

On zondag 21 juli 2019 16:34:22 CEST Nathan Lovato wrote:


> The code currently relies on the Pillow Python imaging library. The user 
> needs to install a local version of Pillow in the add-on's directory 
> that matches their operating system. Right now, it's a +/- manual process.

I've often considered that shipping pillow by default might be a good thing; we \
haven't had anyone ask for it, but I would not mind at all adding it to the default \
set of python libraries we ship with Krita.

> We use Pillow for a few reasons:
> 
> 1. Resizing/scaling the image via Python starts an asynchronous process, 
> but the function returns immediately. We couldn't find a way to wait for 
> the scale operation to finish before Krita calls Node.save() and exports 
> the image. The only way we could solve this so far was using Pillow.

That should actually be solved, please make a bug report? Or hack this into libkis -- \
I have always had the hope that users of libkis would help extending it to fit their \
needs better :-)

> 2. Pillow is fast. Using it makes export 2+x faster compared to using 
> Krita's built-in functions.
> 
> As a bonus, it's a lot easier to manipulate the image with Pillow than 
> using Krita's API.

And getting the pixels in and out of the paintdevice doesn't take too much time?

> It's technically possible to automate the installation of the 
> dependency, to have the right version of pillow bundled with Krita upon 
> building the program.
> 
> A FEW QUESTIONS
> 
> About the add-on:
> 
> 1. Is there a reliable way to transform the layer from Python with 
> Krita, and wait for it to finish before saving the file?  If so we could 
> remove Pillow as a dependency. (code contributions welcome!)

libkis would have to be fixed for that.

> 2. Would having pillow as a dependency be okay if we contributed the 
> add-on? The library itself is sizeable, and it takes a good 6 megabytes 
> on disk. For a single add-on, I bet it's too big but never hurts to ask. 🙂

Meh, that's not so big :-) And everyone knows, the bigger the installed footprint, \
the better the application is :-)

> Python add-on development with Krita:
> 
> 3. Is there a way to reload Python plugins without closing and 
> restarting Krita? Plugin dev is quite slow because of that right now.

This is really tricky because a python plugin isn't something separate from Krita. It \
doesn't run outside the Krita process, but becomes part of Krita's ui, with actions, \
dockers, dialogs all being in the same situation as c++ plugins.

-- 
https://www.valdyas.org | https://www.krita.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic