imagegrabwindow

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

imagegrabwindow β€” Π—Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°

ОписаниС

function 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");

?>

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

  • imagegrabscreen() - Π—Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с экрана
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 1 note

up
5
nico ->atdot ΒΆ
18 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.