SunshinePHP Developer Conference 2015

imagegrabwindow

(PHP 5 >= 5.2.2)

imagegrabwindowウィンドウをキャプチャする

説明

resource imagegrabwindow ( int $window_handle [, int $client_area = 0 ] )

ウィンドウあるいはそのクライアント領域のキャプチャを、 ウィンドウハンドル (COM インスタンスの HWND プロパティ) を指定して取得します。

パラメータ

window_handle

HWND ウィンドウ ID。

client_area

アプリケーションのクライアント領域を含めるかどうか。

返り値

成功した場合に画像リソースの ID、失敗した場合に FALSE を返します。

エラー / 例外

window_handle が無効なウィンドウハンドルである場合に E_NOTICE、 Windows API のバージョンが古すぎる場合に E_WARNING が発生します。

例1 imagegrabwindow() の例

ウィンドウ (ここでは IE) のキャプチャを行います。

<?php
$browser 
= new COM("InternetExplorer.Application");
$handle $browser->HWND;
$browser->Visible true;
$im imagegrabwindow($handle);
$browser->Quit();
imagepng($im"iesnap.png");
imagedestroy($im);
?>

ウィンドウ (ここでは IE) の中身のキャプチャを行います。

<?php
$browser 
= new COM("InternetExplorer.Application");
$handle $browser->HWND;
$browser->Visible true;
$browser->Navigate("http://www.libgd.org");

/* まだ動作するか? */
while ($browser->Busy) {
    
com_message_pump(4000);
}
$im imagegrabwindow($handle0);
$browser->Quit();
imagepng($im"iesnap.png");
imagedestroy($im);
?>

注意

注意:

この関数は Windows 上でしか使用できません。

参考

add a note add a note

User Contributed Notes 1 note

up
0
nico ->atdot
7 years ago
If you just want to take a screenshot of a website WITHOUT the ugly IE window around it, the easiest way is setting the "Fullscreen" property to TRUE.

$browser->Fullscreen = true;

This is basically the same as pressing F11 once the browser is open, so you just get the actual website.
To Top