[英]PHP imagegrabwindow GD Library returns only black images
我希望有人可以帮助我和许多其他人解决这个问题...
我想使用php和GD库的imagegrabwindow函数部分创建网站的屏幕截图
花了一整天实现代码后,我终于可以捕获图像并将其保存到文件中,但是图像是黑色的,而不是我期望的图像...
在进一步的调查中,我了解到图像为黑色的原因之一是因为未打开apache与桌面进行交互-并因此产生了黑色图像-问题是我没有将Apache作为服务器运行正在运行IIS 6 ...
服务中是否存在我应允许与桌面交互的设置? 如果有人可以指出我正确的方向?
<?php
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Fullscreen = true;
$browser->Navigate("http://localhost/site/advertise/index.asp");
/* Still working? */
while ($browser->Busy) {
com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
imagepng($im, "iesnap6.jpg");
$browser->Quit();
?>
感谢下面的答案,我将imagepng更改为imagejpeg-但仍然得到黑色图像...
imagejpeg($im, "iesnap7.jpg");
任何帮助将非常感激!
谢谢
我将代码修改为:社交成瘾者仍然无法成功显示黑色图片!
<?php
header('Content-type: image/jpeg');
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Navigate("http://localhost/advertise/index.asp");
/* Still working? */
while ($browser->Busy) {
com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagejpeg($im," file2.jpg");
imagedestroy($im);
?>
社交成瘾者-我添加了标头-我还在不断更改file1.jpg的名称,以确保它没有使用黑色的缓存图像...仍然没有运气!
我以前遇到过此问题,通常是在您尝试加载图像或将其转换为错误类型时引起的
我认为这可能与这条线有关
imagepng($im, "iesnap6.jpg");
您将其另存为png,并在此处将其命名为jpg。
如已声明要使用jpeg,请尝试以下方法
imagejpeg($im, "iesnap6.jpg");
代替
尝试在imagejpeg调用之前设置标题类型:
header('Content-type: image/jpeg');
然后直接从浏览器访问脚本,看看是否可行?
这也是PHP.NET的另一个已知问题
在计算机上测试该功能时,它的速度非常慢。 返回图像大约需要2到3秒钟。 如果Apache服务无法访问“与桌面交互”,它也将无法工作
是否允许IIS和WWW Publishing服务与桌面交互?
我的电脑->管理->服务-> [IIS和WWWPub ...]-> LoginTab->允许与桌面交互
我有同样的问题,请尝试将颜色分辨率更改为32位,然后重试。
“内容类型”中的“ t”必须为大写。
之前:
header('Content-type: image/jpeg');
后:
header('Content-Type: image/jpeg');
现在对我有用。
我在imagegrabwindow()中遇到问题。 最终,在发现问题后没有任何帮助之后,我决定看看是否可以编写现有的页面捕获插件或扩展脚本。 我发现Firefox的Pearl Crescent Page Saver可从命令行编写脚本。
http://pearlcrescent.com/products/pagesaver/doc/#commandline
基本版本给您的灵活性低于付费版本,但基本版本满足了我的需求。 它也可能在非Windows系统上运行,但是我还没有尝试过。
我很早就发现了这个问题:主要问题是我的专用服务器未安装32位图形卡。 这导致图像显示为黑色...
我更新了服务器硬件并安装了32位图形卡,现在它可以正常使用了。
我刚刚找到了可能最有帮助的答案。 摘自PHP.net上的评论者: http ://www.php.net/manual/en/function.imagegrabscreen.php
如果没有,Apache将无法与您的计算机桌面通信并返回空白图像。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.