2024 年 PHP Conference Japan

imagegrabwindow

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

imagegrabwindow擷取視窗

說明

imagegrabwindow(int $handle, bool $client_area = false): GdImage|false

使用視窗控制代碼(COM 實例中的 HWND 屬性)擷取視窗或其客戶區。

注意:

此函式僅適用於 Windows。

參數

handle

HWND 視窗 ID。

client_area

包含應用程式視窗的客戶區。

回傳值

成功時返回一個影像物件,失敗時返回 false

錯誤/例外

如果 handle 是無效的視窗控制代碼,則會發出 E_NOTICE。如果 Windows API 版本太舊,則會發出 E_WARNING。

更新日誌

版本 說明
8.0.0 成功時,此函式現在返回一個 GDImage 實例;先前返回的是 資源
8.0.0 client_area 現在需要一個 布林值;先前需要一個 整數

範例

範例 #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($handle, 0);
$browser->Quit();
imagepng($im, "iesnap.png");
imagedestroy($im);
?>

另請參閱

新增註記

使用者貢獻的註記 1 則註記

5
nico ->atdot
17 年前
如果您只想擷取網站的螢幕截圖,而不包含周圍醜陋的 IE 視窗,最簡單的方法是將「全螢幕」屬性設定為 TRUE。

$browser->Fullscreen = true;

這基本上與瀏覽器開啟後按下 F11 相同,因此您只會取得實際的網站畫面。
To Top