ImageGrab Module#

The ImageGrab module can be used to copy the contents of the screen or the clipboard to a PIL image memory.

New in version 1.1.3.

PIL.ImageGrab.grab(bbox=None, include_layered_windows=False, all_screens=False, xdisplay=None)[source]#

Take a snapshot of the screen. The pixels inside the bounding box are returned as an “RGBA” on macOS, or an “RGB” image otherwise. If the bounding box is omitted, the entire screen is copied.

On Linux, if xdisplay is None then gnome-screenshot will be used if it is installed. To capture the default X11 display instead, pass xdisplay="".

New in version 1.1.3: (Windows), 3.0.0 (macOS), 7.1.0 (Linux)

  • bbox – What region to copy. Default is the entire screen. Note that on Windows OS, the top-left point may be negative if all_screens=True is used.

  • include_layered_windows

    Includes layered windows. Windows OS only.

    New in version 6.1.0.

  • all_screens

    Capture all monitors. Windows OS only.

    New in version 6.2.0.

  • xdisplay

    X11 Display address. Pass None to grab the default system screen. Pass "" to grab the default X11 screen on Windows or macOS.

    You can check X11 support using PIL.features.check_feature() with feature="xcb".

    New in version 7.1.0.


An image


Take a snapshot of the clipboard image, if any. Only macOS and Windows are currently supported.

New in version 1.1.4: (Windows), 3.3.0 (macOS)


On Windows, an image, a list of filenames, or None if the clipboard does not contain image data or filenames. Note that if a list is returned, the filenames may not represent image files.

On Mac, an image, or None if the clipboard does not contain image data.