1

以下代码仅适用于 Windows。

<?php
  ...
  $im = imagegrabwindow($handle);
  ...      
  imagedestroy($im);
?>

unix(debian)php环境的解决方案是什么,在php cli程序中获取屏幕截图?

4

1 回答 1

1

所以,听起来你想从 Firefox 捕获屏幕:p。

对于无头服务器,请确保先安装 Xvfb,然后启动它Xvfb :2 -screen 0 1024x768x24&(当然,您可以根据需要更改显示:2和分辨率1024x768x24)。

运行 Firefox 以在该显示器上打开特定页面。稍等一下,让 Firefox 打开页面,然后执行 a或类似的操作。DISPLAY=:2 firefox http://www.example.comsleep 10

然后从 ImageMagick 中加入一些“魔法”(当然必须安装)以将屏幕捕获到文件中:import -window root -display :2 example.png.

现在您的处理乐趣开始了:p。

这是一个将所有内容放在一起的小型 bash 脚本(Xvfb 应该已经在运行以使其工作):

#!/bin/bash
export DISPLAY=":2" /usr/bin/firefox "$1"&
/bin/sleep 10
/usr/bin/import -window root -display :2 "$2"
killall firefox-bin

从 PHP 调用它,并将屏幕截图的 URL 和文件名作为参数提供给它。

顺便说一句,如果您的服务器有 X,您可以跳过 Xvfb 部分并使用正在运行的 X 服务器显示(很可能:0)。

于 2011-01-18T13:13:36.097 回答