我正在使用代码
<?php
echo 'Hi';
$im = imagegrabscreen();
imagejpeg($im, "myscreenshot.jpg");
imagedestroy($im);
?>
这是创建一个黑色背景的图像 myscreenshot.jpg。但我期待一个白色背景的 jpeg 图像,上面写着你好
这是一个常见问题,您会收到此错误,因为不允许 Apache 与您的桌面交互(注)
解决方案 1:Apache 权限:
services.msc
以管理员身份运行命令。Allow this service to interact with the desktop
。解决方案2:我们使用“boxcutter”
$exec = exec('boxcutter -f image.png');
解决方案 3:使用 COM seee ( http://php.net/manual/en/function.imagegrabwindow.php )
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Navigate("http://stackoverflow.com"); // path to your URL
/* Still working? */
while ($browser->Busy) {
com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, "myscreenshot.jpg");
imagedestroy($im);
我希望这有帮助
为此,您的 Apache 服务必须设置为“允许服务与桌面交互”,否则您只会得到一个空白图像。
要在 Windows 上解决此问题,请右键单击我的电脑,选择管理/服务和应用程序/服务 - 找到 apache 服务(如 Apache2)并右键单击,选择属性 - 选择登录选项卡并选中“允许服务交互”带桌面的复选框。重启阿帕奇。