PHP使用GD库实现截屏php
PHP5.2.2以上版本的GD库实现了两个截屏函数 imagegrabscreen 和 imagegrabwindow
分别用于截取整个屏幕和截取某个窗口(同ALT+PrintScreen)的屏幕。web
1. 截取整个屏幕 Screenshotapache
<?php
$im
=
imagegrabscreen
()
;
imagepng
(
$im
,
"
myscreenshot.png
"
)
;
?>
2. 截取一个窗口 Capture a window (IE for example)浏览器
<?php
$browser
=
new
COM
(
"
InternetExplorer.Application
"
)
;
$handle
=
$browser
->
HWND
;
$browser
->
Visible
=
true
;
$im
=
imagegrabwindow
(
$handle
)
;
$browser
->
Quit
()
;
imagepng
(
$im
,
"
iesnap.png
"
)
;
$im
=
imagegrabscreen
()
;
?>
3. 截取IE内容 Capture a window (IE for example) but with its content!服务器
<?php
$browser
=
new
COM
(
"
InternetExplorer.Application
"
)
;
$handle
=
$browser
->
HWND
;
$browser
->
Visible
=
true
;
$browser
->
Navigate
(
"
http://www.21andy.com/blog/
"
)
;
/* Still working? */
while
(
$browser
->
Busy
)
{
com_message_pump
(
4000
)
;
}
$im
=
imagegrabwindow
(
$handle
,
0
)
;
$browser
->
Quit
()
;
imagepng
(
$im
,
"
iesnap.png
"
)
;
?>
4. 截取IE的全屏模式 IE in fullscreen mode函数
<?php
$browser
=
new
COM
(
"
InternetExplorer.Application
"
)
;
$handle
=
$browser
->
HWND
;
$browser
->
Visible
=
true
;
$browser
->
FullScreen
=
true
;
$browser
->
Navigate
(
"
http://www.21andy.com/blog/
"
)
;
/* Is it completely loaded? (be aware of frames!)*/
while
(
$browser
->
Busy
)
{
com_message_pump
(
4000
)
;
}
$im
=
imagegrabwindow
(
$handle
,
0
)
;
$browser
->
Quit
()
;
imagepng
(
$im
,
"
iesnap.png
"
)
;
?>
I use Internet Example Explorer as example, if you like to play more with IE and com, check out the IBrowser2 documentation at MSDN. It should work with any kind of window as long as you give the correct handle (usually $obj->HWND).测试
* php_gd2.dll for 5.2.x thread safe build
* php gd image documentation
* IE manual (useful to tweak it from com_dotnetui
在测试过程当中我并无出现手册中说的那种效果,而是一张纯黑的图片,这是为何呢?spa
可能有两种状况,第一种状况就是这个COM组件只适用于WINDOWS服务器,由于他没有IE浏览器;第二种状况就是没有打开容许服务与桌面交互!其中第二种状况最为常见(默认是关闭的),打开的方法:点击计算机(个人电脑) -> 右键 -> 管理 -> 服务和应用程序 -> 服务 -> Apache -> 右键 -> 属性 -> 登陆 -> 选中容许服务与桌面交互。.net
若是是第二种状况的话,我安装的是apache集成包,这样的话就找不到apache的服务在哪里,因此第二种方法的设置我没有成功,若有成功者,但愿指点一下。