-
-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Closed
Labels
BugAny unexpected behavior, until confirmed feature.Any unexpected behavior, until confirmed feature.
Description
To reproduce the bug, just run ".show()" on any image object, while only having imagemagick's display viewer on the PATH.
from PIL import Image
Image.new('RGB', (10, 10)).show()Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.10/site-packages/PIL/Image.py", line 2259, in show
_show(self, title=title)
File "/usr/lib/python3.10/site-packages/PIL/Image.py", line 3233, in _show
ImageShow.show(image, **options)
File "/usr/lib/python3.10/site-packages/PIL/ImageShow.py", line 55, in show
if viewer.show(image, title=title, **options):
File "/usr/lib/python3.10/site-packages/PIL/ImageShow.py", line 79, in show
return self.show_image(image, **options)
File "/usr/lib/python3.10/site-packages/PIL/ImageShow.py", line 105, in show_image
return self.show_file(self.save_image(image), **options)
File "/usr/lib/python3.10/site-packages/PIL/ImageShow.py", line 212, in show_file
subprocess.Popen(args)
File "/usr/lib/python3.10/subprocess.py", line 966, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.10/subprocess.py", line 1775, in _execute_child
self.pid = _posixsubprocess.fork_exec(
TypeError: expected str, bytes or os.PathLike object, not NoneType
The reason is that the DisplayViewer class just appends options["title"] to the argument list:
Line 274 in 15dc291
| args += ["-title", options["title"]] |
But the default value for title is None:
Line 51 in 15dc291
| def show(image, title=None, **options): |
Metadata
Metadata
Assignees
Labels
BugAny unexpected behavior, until confirmed feature.Any unexpected behavior, until confirmed feature.