Python PIL and Vista/Windows 7 .. show() not working ...
David Robinow
drobinow at gmail.com
Tue Dec 1 10:38:38 EST 2009
On Mon, Nov 30, 2009 at 12:57 PM, Esmail <ebonak at hotmail.com> wrote:
> Hello all.
>
> I am using the PIL 1.1.6 and Python 2.6.x under XP without any
> problems. However, I can't display any images under Vista
> or Windows 7. I could understand Windows 7 as it's relatively
> new, but Vista has been around for a bit.
>
> Sample code:
>
> import Image
>
> im = Image.open('c://mypic.jpg')
> im.show()
>
>
> this will work fine under XP, but under Windows 7 and Vista
> the default image viewer will come up with some error message
> that the image can't be found.
>
> I tried with an external image view program and tried to supply
> it via the command parameter to show - but that too didn't work.
>
> Definition: im.show(self, title=None, command=None)
>
> Any suggestions/help/workarounds? If you can get this to work
> with Vista or Windows 7 I'd love to hear from you.
>
> Thanks!
> Esmail
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>
show() executes a command like:
os.system("start /wait TempFile.BMP && del /f TempFile.BMP")
On Vista, HELP START displays the following:
...
If Command Extensions are enabled, external command invocation
through the command line or the START command changes as follows:
...
When executing an application that is a 32-bit GUI application, CMD.EXE
does not wait for the application to terminate before returning to
the command prompt. This new behavior does NOT occur if executing
within a command script.
...
The "/wait" apparently does nothing and the image file is deleted
before the image viewer gets a chance to open it. (I think)
[I don't understand why it works in XP since "HELP START" says
basically the same thing]
I haven't tried to fix it yet but a likely solution is to split up the command.
os.system("start TempFile.BMP")
wait a second
os.system(del /f TempFile.BMP")
More information about the Python-list
mailing list