Python Pillow - ImageGrab.grab()函数



Pillow 库中的 ImageGrab 模块提供了捕获屏幕或剪贴板内容并将其作为 PIL 图像存储在内存中的功能。

ImageGrab.grab() 函数用于捕获屏幕快照。如果指定了边界框,则边界框内的像素将作为 macOS 上的“RGBA”图像或其他平台上的“RGB”图像检索。如果没有指定边界框,则会复制整个屏幕内容。

语法

以下是该函数的语法:

PIL.ImageGrab.grab(bbox=None, include_layered_windows=False, all_screens=False, xdisplay=None)

参数

以下是此函数参数的详细信息:

  • bbox - 定义要捕获的区域。如果省略,则该函数会捕获整个屏幕。在 Windows 操作系统上,如果使用 all_screens=True,则左上角点可能为负数。

  • include_layered_windows - 如果为 True,则包含分层窗口。此参数特定于 Windows 操作系统,并在 6.1.0 版本中引入。

  • all_screens - 如果为 True,则捕获所有显示器。此参数特定于 Windows 操作系统,并在 6.2.0 版本中引入。

  • xdisplay - X11 显示地址。传递 None 以抓取默认系统屏幕。传递空字符串 (“”) 以在 Windows 或 macOS 上抓取默认 X11 屏幕。要检查 X11 支持,可以使用 PIL.features.check_feature() 并将 feature 设置为“xcb”。

返回值

该函数返回一个包含已捕获屏幕内容的 PIL 图像。

示例

示例 1

此示例使用 ImageGrab.grab() 函数捕获整个屏幕。

from PIL import ImageGrab

# Capture the entire screen
screen_image = ImageGrab.grab()

# Display the captured images
screen_image.show()
print('Captured the snapshot successfully...')

输出

Captured the snapshot successfully...

输出图像

captured snapshot

示例 2

在此示例中,ImageGrab.grab() 函数用于捕获屏幕的特定区域。

from PIL import ImageGrab

# Specify bounding box 
bbox = (100, 100, 500, 500)  

# Capture a specific region (bbox)
captured_image = ImageGrab.grab(bbox=bbox)

# Display the captured image
captured_image.show()
print('Captured the snapshot successfully...')

输出

Captured the snapshot successfully...

输出图像

captured image

示例 3

此示例首先捕获整个屏幕,然后使用 bbox 参数选择特定区域。

from PIL import ImageGrab

# Capture the entire screen
screen_image = ImageGrab.grab()

# Capture a specific region (bbox)
bbox = (100, 100, 500, 500)
region_image = ImageGrab.grab(bbox=bbox)

# Display the captured images
screen_image.show()
region_image.show()
print('Captured the snapshot successfully...')

输出

Captured the snapshot successfully...

整个屏幕

entire screen

区域图像

region image
python_pillow_function_reference.htm
广告