[英]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 5
或ImportError: ImageGrab is macOS and Windows only
。
寻找其他选项,我首先尝试mss.mss()
,它返回$DISPLAY not set.
. 我尝试在方法中设置显示并使用os
,但都没有奏效。
然后我尝试了gtk.gdk
,但在尝试了几种方法后我无法正确安装和导入它。
我也尝试使用pyautogui
,但导入后我无法连接到显示器,并返回DisplayConnectionError
或OSError
。
有没有办法修复使用我列出的方法返回的任何错误? 或者是否有另一种我不知道的方法可以在 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.