Did you go into the source code of PIL/Pillow? Awesome!!! On Wed, May 17, 2017 at 7:52 PM, eryk sun <eryk...@gmail.com> wrote:
> On Thu, May 18, 2017 at 1:58 AM, Michael C > <mysecretrobotfact...@gmail.com> wrote: > > when I run this, while it's called test.pyw, this pops up > > > > from PIL import Image > > > > im = Image.open('1.bmp') > > im.show() > > Ok, I stand corrected. It's something weird, and most likely due to > Windows support here being an afterthought throw in just for coverage, > instead of something anyone actually cared about. The code does indeed > use os.system to show the file, which is just about the worst thing > one can do here for a Windows viewer. > > >>> print(inspect.getsource(ImageShow.WindowsViewer)) > class WindowsViewer(Viewer): > format = "BMP" > > def get_command(self, file, **options): > return ('start "Pillow" /WAIT "%s" ' > '&& ping -n 2 127.0.0.1 >NUL ' > '&& del /f "%s"' % (file, file)) > > >>> print(inspect.getsource(ImageShow.Viewer.show_file)) > def show_file(self, file, **options): > """Display given file""" > os.system(self.get_command(file, **options)) > return 1 > > The WindowsViewer class preferrably should override show_file to call > ShellExecuteExW directly via ctypes, and wait (if possible) to delete > the temporary file. Or at least use subprocess.call with shell=True, > which will hide the console window. Note that being able to wait on > the image viewer is not guaranteed. For example, the image viewer in > Windows 10 is an app that cannot be waited on. > > Since you already have a file on disk, you could skip PIL completely. > Just use os.startfile('1.bmp'). > _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor