1

我正在尝试让imagegrabscreen(GD 函数)与我的 Apache/Vista PC 一起工作。

我正在使用以下代码:

<?php
$im = imagegrabscreen();

header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

目前我得到一个纯黑色的图像,我的辅助显示器的大小(1024 * 768)。我正在使用 Apache 2.2,作为服务运行,关闭 UAC 的 Vista SP1,PHP 5.2.8 和 GD(信息如下)。我已按照imagegrabscreen页面上有关允许 Apache 访问桌面的说明进行操作。我还重新启动了服务和 apache 服务器。我得到相同的结果imagegrabwindow

这是一个错误(其他人在运行此方法时遇到问题吗?)还是我做错了什么?

Array
(
    [GD Version] => bundled (2.0.34 compatible)
    [FreeType Support] => 1
    [FreeType Linkage] => with freetype
    [T1Lib Support] => 1
    [GIF Read Support] => 1
    [GIF Create Support] => 1
    [JPG Support] => 1
    [PNG Support] => 1
    [WBMP Support] => 1
    [XPM Support] => 
    [XBM Support] => 1
    [JIS-mapped Japanese Font Support] => 
)

Apache 服务登录详细信息:

http://www.kalleload.net/uploads/maogfnfnczfh.png http://www.kalleload.net/uploads/maogfnfnczfh.png

4

2 回答 2

1

我查看了 imagegrabscreen() 的源代码;

在这一点上,我认为它失败了,因为我们都有多显示器设置。

当前代码调用 GetDC(0),根据 http://msdn.microsoft.com/en-us/library/dd144871(VS.85).aspx 应该返回“整个屏幕”的设备上下文,但是“要获取特定显示器的 DC,请使用 EnumDisplayMonitors 和 CreateDC 函数"

我将对此进行更多测试,看看我是否可以提出对多显示器友好的代码。

于 2009-03-11T17:17:13.337 回答
0

我认为imagegrabscreen()仅适用于 Windows XP 而不是 Vista。
你应该检查这个链接

于 2012-01-28T22:15:53.917 回答