博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php---PHP使用GD库实现截屏
阅读量:6327 次
发布时间:2019-06-22

本文共 2041 字,大约阅读时间需要 6 分钟。

hot3.png

PHP使用GD库实现截屏

PHP5.2.2以上版本的GD库实现了两个截屏函数 imagegrabscreen 和 imagegrabwindow

分别用于截取整个屏幕和截取某个窗口(同ALT+PrintScreen)的屏幕。

1. 截取整个屏幕 Screenshot

<?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).

*  for 5.2.x thread safe build

*  (useful to tweak it from com_dotnet

 

在测试过程中我并没有出现手册中说的那种效果,而是一张纯黑的图片,这是为什么呢?

可能有两种情况,第一种情况就是这个COM组件只适用于WINDOWS服务器,因为他没有IE浏览器;第二种情况就是没有打开允许服务与桌面交互!其中第二种情况最为常见(默认是关闭的),打开的方法:点击计算机(我的电脑) -> 右键 -> 管理 -> 服务和应用程序 -> 服务 -> Apache -> 右键 -> 属性 -> 登录 -> 选中允许服务与桌面交互。

如果是第二种情况的话,我安装的是apache集成包,这样的话就找不到apache的服务在哪里,所以第二种方法的设置我没有成功,如有成功者,希望指点一下。

转载于:https://my.oschina.net/zhangdapeng89/blog/52407

你可能感兴趣的文章
NetScaler 12.1 发布
查看>>
checkpoint system management
查看>>
CentOS 6.5安全加固及性能优化_操作系统
查看>>
每天laravel-20160709|CallEvent
查看>>
我的友情链接
查看>>
【三石jQuery视频教程】02.创建 FontAwesome 复选框和单选框
查看>>
Cisco 配置DHCP中继 代理工程 实例
查看>>
Centos7.3部署KVM虚拟化环境
查看>>
configure: error: Cannot find ldap.h
查看>>
Linux启动分析(2)— bootsect.S、setup.S、head.S分析
查看>>
自学java时的笔记(一)
查看>>
Qt之文本编辑器(二)
查看>>
python编译时检查语法错误
查看>>
考题纠错2
查看>>
SQL——索引
查看>>
Python新手快速入门教程-基础语法
查看>>
JVM性能调优入门
查看>>
关于raid的基本原理、软raid的实现演示
查看>>
科技企业的幕后推手,人工智能究竟有何魔力
查看>>
详解Oracle临时表的几种用法及意义
查看>>