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')
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
- ¥15 perl MISA分析p3_in脚本出错
- ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
- ¥15 ubuntu虚拟机打包apk错误
- ¥199 rust编程架构设计的方案 有偿
- ¥15 回答4f系统的像差计算
- ¥15 java如何提取出pdf里的文字?