2011年11月16日 星期三

網頁快照(抓網頁儲存成圖片)

測試環境:PHP+Apache+Win7
在windows系統底下可呼叫IE,再抓取畫面。
程式範例:

$newFile = 'images/'.time().'.jpg';

$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->FullScreen = true;
$browser->Navigate("google.com");

while ($browser->Busy) {
    com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, $newFile);
imagedestroy($im);

InternetExplorer Object 說明:



如果程式執行時,只抓到黑色的畫面。
可在「控制台」->「系統管理工具」->「服務」->開啟「Apache」的設定。
然後在「登入」的設定中,將「允許服務與桌面互動」勾選(如下圖所示),
再重新啟動Apache即可。


其他:
imagegrabwindow:Captures a window
http://www.php.net/manual/en/function.imagegrabwindow.php

imagegrabscreen:Captures the whole screen
http://www.php.net/manual/en/function.imagegrabscreen.php

沒有留言:

張貼留言