如果您设置了多个显示器,此函数只会抓取主显示器;不会像您使用“打印屏幕”键那样抓取所有显示器。
此外,这应该很明显,但无论如何我还是要提一下,如果您正在运行 GPU 密集型应用程序(不是 CPU),调用此函数会导致您的机器和服务器响应出现相当明显的延迟,直到请求完成为止。
(PHP 5 >= 5.2.2, PHP 7, PHP 8)
imagegrabscreen — 捕获整个屏幕
此函数没有参数。
成功时返回图像对象,失败时返回 false
。
示例 #1 imagegrabscreen() 示例
此示例演示如何拍摄当前屏幕的屏幕截图并将其保存为 png 图像。
<?php
$im = imagegrabscreen();
imagepng($im, "myscreenshot.png");
imagedestroy($im);
?>
如果您设置了多个显示器,此函数只会抓取主显示器;不会像您使用“打印屏幕”键那样抓取所有显示器。
此外,这应该很明显,但无论如何我还是要提一下,如果您正在运行 GPU 密集型应用程序(不是 CPU),调用此函数会导致您的机器和服务器响应出现相当明显的延迟,直到请求完成为止。
如果您出于任何原因需要在 Cygwin 中使用此功能,则可以使用 https://github.com/divinity76/autoit_php 中的库。
- 与 Cygwin 兼容的粗略等效项
<?php
if(!function_exists("imagegrabscreen")){
function imagegrabscreen()/*:gd-resource*/{
require_once("autoit.class.php");
$au=new AutoIt();
$png_binary=$au->_ScreenCapture_Capture();
return imagecreatefromstring($png_binary);
}
}
(请注意,与真正的 imagegrabscreen() 不同,此函数可能会抛出RuntimeException,如果拍摄图片时出现问题,或者如果autoit.class.php 无法加载)
要使此功能正常工作,您的 Apache 服务必须设置为“允许服务与桌面交互”,否则您只会得到空白图像。要解决此问题,请右键单击我的电脑,选择管理/服务和应用程序/服务 - 找到 Apache 服务(例如 Apache2)并右键单击,选择属性 - 选择登录选项卡并选中“允许服务与桌面交互”复选框。重新启动 Apache。