python - 截取全屏python
问题描述
我正在尝试为我的屏幕截屏。
我知道这个功能
pyautogui.screenshot()
这个功能的问题是它只能截取一个屏幕。我正在尝试为所有可用屏幕(通常是两个)截取完整的屏幕截图。但是,在这方面它似乎不起作用。
解决方案
鉴于您想使用 Windows 系统,我建议您使用Python 库Desktopmagic 。
这是一个例子:
from __future__ import print_function
from desktopmagic.screengrab_win32 import (
getDisplayRects, saveScreenToBmp, saveRectToBmp, getScreenAsImage,
getRectAsImage, getDisplaysAsImages)
# Save the entire virtual screen as a BMP (no PIL required)
saveScreenToBmp('screencapture_entire.bmp')
# Save an arbitrary rectangle of the virtual screen as a BMP (no PIL required)
saveRectToBmp('screencapture_256_256.bmp', rect=(0, 0, 256, 256))
# Save the entire virtual screen as a PNG
entireScreen = getScreenAsImage()
entireScreen.save('screencapture_entire.png', format='png')
# Get bounding rectangles for all displays, in display order
print("Display rects are:", getDisplayRects())
# -> something like [(0, 0, 1280, 1024), (-1280, 0, 0, 1024), (1280, -176, 3200, 1024)]
# Capture an arbitrary rectangle of the virtual screen: (left, top, right, bottom)
rect256 = getRectAsImage((0, 0, 256, 256))
rect256.save('screencapture_256_256.png', format='png')
# Unsynchronized capture, one display at a time.
# If you need all displays, use getDisplaysAsImages() instead.
for displayNumber, rect in enumerate(getDisplayRects(), 1):
imDisplay = getRectAsImage(rect)
imDisplay.save('screencapture_unsync_display_%d.png' % (displayNumber,), format='png')
# Synchronized capture, entire virtual screen at once, cropped to one Image per display.
for displayNumber, im in enumerate(getDisplaysAsImages(), 1):
im.save('screencapture_sync_display_%d.png' % (displayNumber,), format='png')
推荐阅读
- tensorflow - 如何检查我在 TensorFlow 中使用的是 CPU 还是 GPU?
- python - 使用函数将对象添加到列表中
- r - 正文中的闪亮用户会话 ID
- arrays - 在阵列上查找最大面积
- c# - Accessing files within child directories
- swift - NSWindow 缩小以适应带有填充的内容
- oracle - Oracle - 使用 ant 将表从一个模式复制到另一个模式
- javascript - JS中没有设置的字符串
- ruby - gem install compass error after Mac OS Sierra 10.12.6 update
- unit-testing - Temporarily get jest coverage to show only files in a specific folder