Skip to content

Commit

Permalink
Use screencapture arguments to crop on macOS
Browse files Browse the repository at this point in the history
  • Loading branch information
radarhere committed Mar 22, 2022
1 parent a6a843e commit dd2b91c
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions src/PIL/ImageGrab.py
Expand Up @@ -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(
Expand Down

0 comments on commit dd2b91c

Please sign in to comment.