我希望在谷歌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。
为了寻找其他选择,我首先尝试了返回$DISPLAY not set.的mss.mss()。我尝试在该方法中设置显示并使用os,但这两种方法都不起作用。
然后我尝试了gtk.gdk,但在尝试了几种方法之后,我无法正确地安装和导入它。
我也尝试过使用pyautogui,但在导入后我无法连接到显示器,并且返回了DisplayConnectionError或OSError。
有没有办法使用我列出的方法修复任何返回的错误?或者,有没有我不知道的另一种方法,在Colab中将屏幕内容作为图像返回?
发布于 2021-08-27 13:20:48
首先,您需要设置一个虚拟监视器:
!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))中,您还可以指定要抓取的屏幕的大小。
https://stackoverflow.com/questions/64672576
复制相似问题