The PIL show() method looks for the default viewer. How do I change this to a different viewer (of my choice)?
Paul St George
email at paulstgeorge.com
Tue May 29 11:39:27 EDT 2018
Should the PIL code be corrected?
On 28/05/2018 06:34, Christian Gollwitzer wrote:
> Am 27.05.18 um 23:58 schrieb Cameron Simpson:
>> On 27May2018 20:15, Paul St George <email at paulstgeorge.com> wrote:
>>> This is very helpful indeed, thank you. Awe-inspiring.
>>>
>>> It occurred to me that I could edit the PIL/ImageShow.py, replacing
>>> ‘xv’ (in five places) with the utility of my choice and using
>>> ‘executable’ as the command.
>>>
>>> Or, is this just not done?
>>
>> It becomes a maintenance problem.
>>
>> Alternatively you could:
>>
>> Just write your own show function which accepts an Image and displays
>> it with your program of choice. You might need to write some
>> equivalent code which saves the Image to a file first, and removes it
>> afterwards.
>>
>> You could copy the show() code into a function of your own (i.e. in
>> your own codebase) modify that to suit, then monkeypatch the class:
>>
>> Image.show = your_personal_show_function
>>
>> when your programme starts. That way the code changes are not in the
>> PIL code.
>
> I think this is a bug/misfeature in the PIL code. On all 3 major
> platforms there is a way to invoke the standard program for a given
> file or URL. On Windows, it is "cmd.exe /c start ...", on OSX it is
> "open ...." and on Linux it is "xdg-open ...". That way the file is
> opened by whatever the user has set in his desktop environment.
>
> Technically, xdg-open needs not to be present on Linux, though it is
> usually installed.
>
> Christian
>
--
Paul St George
http://www.paulstgeorge.com
http://www.devices-of-wonder.com
+44(0)7595 37 1302
More information about the Python-list
mailing list