python如何用ImageGrab 获取两个显示器的屏幕截图保存到本地,尤其是第二块屏幕的内容
1条回答 默认 最新
- threenewbee 2020-09-19 19:44关注
https://github.com/ludios/Desktopmagic
介绍
Desktopmagic在Windows上拍摄屏幕截图。 它支持任何配置的多台显示器,并且在任何故障模式下(锁定工作站,未连接显示器等)都不会泄漏内存。 如果您愿意,可以连续使用它来拍摄数百万个屏幕截图。
您可能希望使用它而不是PIL的ImageGrab,因为:
Desktopmagic可以截取所有监视器的屏幕截图。 您可以:
拍摄整个虚拟屏幕的屏幕截图。
拍摄整个虚拟屏幕的屏幕快照,每个显示分为一个PIL图像。
截屏仅显示一个屏幕。
拍摄虚拟屏幕任意区域的屏幕截图。
安装
pip install --user 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')
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 用ns3仿真出5G核心网网元
- ¥15 matlab答疑 关于海上风电的爬坡事件检测
- ¥88 python部署量化回测异常问题
- ¥30 酬劳2w元求合作写文章
- ¥15 在现有系统基础上增加功能
- ¥15 远程桌面文档内容复制粘贴,格式会变化
- ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
- ¥15 这种微信登录授权 谁可以做啊
- ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
- ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”