找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1532|回复: 1

[建站技术] PHP使用GD库实现页面截图

[复制链接]
发表于 2011-5-23 11:23:08 | 显示全部楼层 |阅读模式
PHP5.2.2以上版本的GD库实现了两个截屏函数 imagegrabscreen 和 imagegrabwindow分别用于截取整个屏幕和截取某个窗口(同ALT+PrintScreen)的屏幕。

1. 截取整个屏幕 Screenshot
  1. <?php
  2. $im = imagegrabscreen();
  3. imagepng($im, "myscreenshot.png");
  4. ?>
复制代码
2. 截取一个窗口 Capture a window (IE for example)
  1. <?php
  2. $browser = new COM("InternetExplorer.Application");
  3. $handle = $browser->HWND;
  4. $browser->Visible = true;
  5. $im = imagegrabwindow($handle);
  6. $browser->Quit();
  7. imagepng($im, "iesnap.png");
  8. $im = imagegrabscreen();
  9. ?>
复制代码
3. 截取IE内容 Capture a window (IE for example) but with its content!
  1. <?php
  2. $browser = new COM("InternetExplorer.Application");
  3. $handle = $browser->HWND;
  4. $browser->Visible = true;
  5. $browser->Navigate("http://www.21andy.com/blog/");
  6.   
  7. /* Still working? */
  8. while ($browser->Busy) {
  9.     com_message_pump(4000);
  10. }
  11. $im = imagegrabwindow($handle, 0);
  12. $browser->Quit();
  13. imagepng($im, "iesnap.png");
  14. ?>
复制代码
4. 截取IE的全屏模式 IE in fullscreen mode
  1. <?php
  2. $browser = new COM("InternetExplorer.Application");
  3. $handle = $browser->HWND;
  4.   
  5. $browser->Visible = true;
  6. $browser->FullScreen = true;
  7. $browser->Navigate("http://www.21andy.com/blog/");
  8.   
  9. /* Is it completely loaded? (be aware of frames!)*/
  10. while ($browser->Busy) {
  11.     com_message_pump(4000);
  12. }
  13. $im = imagegrabwindow($handle, 0);
  14. $browser->Quit();
  15. imagepng($im, "iesnap.png");
  16. ?>
复制代码
几个要注意的问题:

1.这2个函数只能工作在是windows上的服务器运行,不难看出,例子大部分都是用了ie来截图的;
2. 需要php版本PHP 5 >= 5.2.2,gb库版本>=2.0.34;
3.web 服务器(iis或apache)做为windows服务时,必须打开”允许与桌面交互”的选项.(点击服务属性->登录->勾选”允许与桌面交互”。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|王牌互联

GMT+8, 2024-11-25 04:04 , Processed in 0.035211 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表