如何在Linux命令行中拍摄Chromebook的屏幕截图



在Chromebook上的Linux中,我试图使用命令行进行屏幕截图,但似乎什么都不起作用。我试过ImageMagick。。。

sudo apt-get install imagemagick
import -window root filename.png
# "unable to read X window image 'root'"
import filename.png
# "unable to grab mouse '': No such file or directory"

我也试过scrot。。。

sudo apt-get install scrot
scrot -u filename.png
#"BadDrawable (invalid Pixmap or Window parameter)"

我尝试了几种python方法,但唯一一种我能成功安装并运行而没有错误的方法是pyscreeze(它使用scrot(,它只产生了一个空白的黑色图像,这对我来说毫无用处

在其他python方法方面,我尝试了pyautogui,但安装失败,告诉我"为Pillow构建轮子失败"我尝试了安装并运行的pyscreenshot,但告诉我";所有后端都失败"我还尝试了ImageGrab,它告诉我";ImageGrab仅适用于MacOS和Windows">

有人知道怎样才能做到这一点吗?

提前感谢!

Javascript解决方案

这里有一种方法可以截图chromebook屏幕的任何部分,铬窗口,或铬标签。

将其粘贴到浏览器控制台中以进行屏幕截图。

async function takeScreenshot(format = "image/png") {
const stream = await navigator.mediaDevices.getDisplayMedia({video:true});
const video = document.createElement("video");
video.srcObject = stream;
video.muted = true;
await video.play();
const canvas = document.createElement("canvas");
canvas.width = video.videoWidth;
canvas.height = video.videoHeight;
const context = canvas.getContext("2d");
context.drawImage(video, 0, 0);
const blob = await new Promise(resolve => canvas.toBlob(resolve, format));
stream.getTracks().forEach(track => track.stop());
return blob;
}
function download(blob, name = "Untitled") {
const elt = document.createElement("a");
elt.download = name;
elt.href = URL.createObjectURL(blob);
elt.click();
URL.revokeObjectURL(elt.href);
}
takeScreenshot("image/png").then(blob => download(blob, "Screenshot.png"));

我没有解决方案,但知道如何进行

  1. 您需要chromebook在开发者模式下访问实际的Linux控制台,而不是您通过";设置";应用程序
  2. 由于chromebook在Wayland上,您需要使用类似grim的东西,它在Wayland中工作,而不是scrot,它用于X Windows
  3. 您可以使用原生的支持wayland的Linux chroothttps://github.com/nmilosev/crouton-fedora-wayland安装grim和其他wayland本地工具

相关内容

  • 没有找到相关文章

最新更新