Merge pull request #6152 from radarhere/screencapture

Use screencapture arguments to crop on macOS
This commit is contained in:
Hugo van Kemenade 2022-03-27 11:27:16 +03:00 committed by GitHub
commit fa6e18a771
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -30,14 +30,18 @@ def grab(bbox=None, include_layered_windows=False, all_screens=False, xdisplay=N
if sys.platform == "darwin":
fh, filepath = tempfile.mkstemp(".png")
os.close(fh)
subprocess.call(["screencapture", "-x", filepath])
args = ["screencapture"]
if bbox:
left, top, right, bottom = bbox
args += ["-R", f"{left},{right},{right-left},{bottom-top}"]
subprocess.call(args + ["-x", filepath])
im = Image.open(filepath)
im.load()
os.unlink(filepath)
if bbox:
im_cropped = im.crop(bbox)
im_resized = im.resize((right - left, bottom - top))
im.close()
return im_cropped
return im_resized
return im
elif sys.platform == "win32":
offset, size, data = Image.core.grabscreen_win32(