繁体   English   中英

如何使用 PIL 在 Google Colab 中截取屏幕截图

[英]How can I take a screenshot in Google Colab using PIL

我想在 Google Colab 上截取我的屏幕截图以用于屏幕录制的视频,但由于笔记本在 linux 中运行,我不确定这是否可行。

我的设备上的 python 代码如下

from PIL import ImageGrab
img = ImageGrab.grab(bbox= None)

在 Colab 上运行时,它返回OSError: X connection failed: error 5ImportError: ImageGrab is macOS and Windows only

寻找其他选项,我首先尝试mss.mss() ,它返回$DISPLAY not set. . 我尝试在方法中设置显示并使用os ,但都没有奏效。

然后我尝试了gtk.gdk ,但在尝试了几种方法后我无法正确安装和导入它。

我也尝试使用pyautogui ,但导入后我无法连接到显示器,并返回DisplayConnectionErrorOSError

有没有办法修复使用我列出的方法返回的任何错误? 或者是否有另一种我不知道的方法可以在 Colab 中将屏幕内容作为图像返回?

首先你需要设置一个虚拟监视器:

!pip install gym pyvirtualdisplay > /dev/null 2>&1
!apt-get install -y xvfb python-opengl ffmpeg > /dev/null 2>&1

DISPLAY_WIDTH = 1920  
DISPLAY_HEIGHT = 1080

from IPython import display as ipythondisplay
from pyvirtualdisplay import Display
display = Display(visible=0, size=(DISPLAY_WIDTH, DISPLAY_HEIGHT))
display.start()

然后安装pyscreenshot:

!pip install pyscreenshot
import pyscreenshot as ImageGrab

最后上图:

frame = np.array(ImageGrab.grab(bbox= None))

ImageGrab.grab(bbox=(x, y, w, h))您还可以指定要抓取的屏幕大小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM