php - 使用 imagegrabscreen 和 Wamp 捕获图像

标签 php apache gd screen-capture

我正在尝试使用 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。

以下是步骤。

  1. 停止 Apache 服务器服务。您可以通过调用

    来完成此操作
    NET STOP Apache2.2
    

    或者您可以打开 services.msc 然后停止它。

  2. Apache2.2 文件夹复制到 C:\ 中。 将其放在您拥有完全访问权限的位置。就像 Documents 或其他驱动器中一样。我把它放在K:中。为了确保您拥有完全访问权限,

    1. 递归获取 Apache 目录的所有权。
    2. 确保您在 Apache2.2 文件夹的安全选项卡上勾选了完全控制
    3. 这个新的 Apache 配置文件 httpd.conf 将包含大量硬编码路径。如C:\apache software Foundation\apache2.2。只需将它们替换为您的新路径即可。就我而言,它是 K:\Apache2.2
  3. 此时您的 Apache 服务器服务应该停止。所以80端口不会被阻塞。您将在您自己的区域(目录)拥有您自己的 Apache。

  4. 打开控制台窗口并使用 cd 转到您的 Apache 主目录,其中包含 htdocs 文件夹以及其他一些文件夹

  5. 运行bin\httpd.exe。这意味着正在运行 Apache。 拥有桌面的完全访问权限。 您可以做任何事情httpd.exe 也是如此
  6. 打开您的网页。使用以下代码。

    <?php
    header("Content-type: image/png");
    $im = imagegrabscreen();    
    imagepng($im);
    imagedestroy($im); 
    exit(0);
    ?>
    
  7. 您将看到该图像。

关于php - 使用 imagegrabscreen 和 Wamp 捕获图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8919550/

相关文章:

linux - 为 Windows 和 Linux 发行版编译 apache 模块

PHP 无法识别符号 '

php - fopen 在普通 PHP 中工作,但在 Drupal 中不起作用

apache - 尝试测试 TomEE 上部署的 Jersey REST Web 服务时出现 java.lang.IllegalAccessError

PHP/Apache/AJAX - POST 限制?

php - 如何不杀死服务器并通过 simplexml 类和 GD 刷新超过 2000 个图像?

php - 使用 mysql 存储评论或将它们写入 PHP 中的文件或 XML 文件并以这种方式显示在主页上会更好吗?

php - InvalidArgumentException 未找到 View [登录]

php - 旋转图像降低质量

php - 如何动态创建带有指定编号的图像?