PHPerKaigi 2025

imagegrabwindow

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

imagegrabwindowЗахватывает изображение окна

Описание

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

Функция делает снимок окна или его клиентской части через Windows-дескриптор (свойство COM-объекта HWND).

Замечание:

Функция доступна только в ОС Windows.

Список параметров

handle

ID-идентификатор HWND-дескриптора окна.

client_area

Включает клиентскую часть окна приложения.

Возвращаемые значения

Функция возвращает объект изображения, если выполнилась успешно, или false, если возникла ошибка.

Ошибки

Функция выдаёт ошибку уровня E_NOTICE выдаётся, если в аргументе handle передали недопустимый дескриптор окна. Функция выдаёт ошибку уровня E_WARNING, если API-интерфейс ОС Windows устарел.

Список изменений

Версия Описание
8.0.0 Функция теперь возвращает экземпляр класса GDImage, если выполнилась успешно; раньше возвращался ресурс (resource).
8.0.0 Параметр client_area теперь ожидает логическое значение bool; раньше ожидалось значение с типом int.

Примеры

Пример #1 Пример захвата изображения окна функцией imagegrabwindow()

Захват окна, например браузера IE.

<?php

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

?>

Захват окна с содержимым, например браузера 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");

?>

Смотрите также

Добавить

Примечания пользователей 1 note

up
5
nico ->atdot
17 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