我正在使用代码
<?php
echo 'Hi';
$im = imagegrabscreen();
imagejpeg($im, "myscreenshot.jpg");
imagedestroy($im);
?>
这是创建一个带有黑色背景的图像myscreenshot.jpg。但我期待一个带有白色背景的jpeg图像,并且喜欢写在上面
答案 0 :(得分:1)
这是一个常见问题,请参阅您收到此错误,因为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);
我希望这会有所帮助
答案 1 :(得分:0)
为此,您的Apache服务必须设置为“允许服务与桌面交互”,否则您将获得一个空白图像。
要在Windows上修复此问题,请右键单击“我的电脑”,选择“管理/服务和应用程序/服务” - 找到apache服务(如Apache2)并右键单击,选择“属性” - 选择“登录”选项卡并选中“允许”服务与桌面'复选框交互。重启Apache。