我正在尝试使用 imagegrabscreen 捕获本地网页,但我只得到黑色屏幕截图。我尝试了 SO 和其他网站上的问题中的几乎所有解决方案,但没有任何效果。
我正在使用并完成以下操作:
- Windows 7 64 位
- Wamp 2.2a 64 位
- PHP 5.3.8
- gd2(版本:“捆绑的 2.0.34 兼容”)已安装并启用。
- 允许 apache 服务与桌面交互。
- 我没有辅助显示器或任何东西。
<?php
$im = imagegrabscreen();
imagepng($im, "myscreenshot.png");
imagedestroy($im);
?>
我得到的只是一张 1024x768 png 的黑色图像。
最佳答案
你能做到。我这样做了。我没有使用WAMP。我单独使用了所有东西。我已经安装了所有 PHP、MySQL 和 Apache。
以下是步骤。
停止 Apache 服务器服务。您可以通过调用
来完成此操作NET STOP Apache2.2
或者您可以打开
services.msc
然后停止它。将
Apache2.2
文件夹复制到C:\
中。 将其放在您拥有完全访问权限的位置。就像Documents
或其他驱动器中一样。我把它放在K:
中。为了确保您拥有完全访问权限,- 递归获取 Apache 目录的所有权。
- 确保您在
Apache2.2
文件夹的安全选项卡上勾选了完全控制
。 - 这个新的 Apache 配置文件
httpd.conf
将包含大量硬编码路径。如C:\apache software Foundation\apache2.2
。只需将它们替换为您的新路径即可。就我而言,它是K:\Apache2.2
。
此时您的 Apache 服务器服务应该停止。所以80端口不会被阻塞。您将在您自己的区域(目录)拥有您自己的 Apache。
打开控制台窗口并使用
cd
转到您的 Apache 主目录,其中包含htdocs
文件夹以及其他一些文件夹- 运行
bin\httpd.exe
。这意味着您正在运行 Apache。 您拥有桌面的完全访问权限。 您可以做任何事情,httpd.exe
也是如此 打开您的网页。使用以下代码。
<?php header("Content-type: image/png"); $im = imagegrabscreen(); imagepng($im); imagedestroy($im); exit(0); ?>
您将看到该图像。
关于php - 使用 imagegrabscreen 和 Wamp 捕获图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8919550/