在从imagegrabscreen()创建图象的黑背景与php

时间:2012-04-18 07:48:34

标签: php function

我正在使用代码

<?php
echo 'Hi';
$im = imagegrabscreen();
imagejpeg($im, "myscreenshot.jpg");
imagedestroy($im);
?>

这是创建一个带有黑色背景的图像myscreenshot.jpg。但我期待一个带有白色背景的jpeg图像,并且喜欢写在上面

2 个答案:

答案 0 :(得分:1)

这是一个常见问题,请参阅您收到此错误,因为Apache不允许与您的桌面交互(注)

解决方案1:Apache权限:

  • 以管理员身份运行命令services.msc
  • 在列表中找到Apache服务,右键单击并选择“属性”
  • 单击“登录”选项卡
  • 更改服务以使用本地系统帐户(如果尚未
  • 选中显示Allow this service to interact with the desktop
  • 的复选框
  • 重新启动Apache服务。

解决方案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。