Как сделать снимок экрана веб-сайта с помощью PHP и GD?

Как создать снимок экрана веб-сайта с помощью PHP и библиотеки GD.


person Community    schedule 09.03.2009    source источник
comment
Открытый вызов? Это не сайт для написания кода.   -  person Ross    schedule 09.03.2009
comment
Вы можете использовать thumbshots.org   -  person vartec    schedule 09.03.2009


Ответы (2)


Хотя вы могли бы что-то сделать с помощью imagegrabscreen или _ 2_ вы сможете использовать его только в Windows, и даже тогда это будет сложно.

Вам нужно будет открыть окно браузера по указанному URL-адресу (вы можете сделать это с помощью exec) и сделать снимок экрана, используя вышеупомянутые методы.

Вот пример ручной записи для imagegrabwindow:

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

/* Still working? */
while ($browser->Busy) {
    com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, "iesnap.png");
imagedestroy($im);
?>
person Ross    schedule 09.03.2009
comment
Привет, Росс, приведенный выше код дает следующую ошибку / предупреждение Предупреждение PHP: модуль 'gd' уже загружен в Неизвестно в строке 0 Неустранимая ошибка PHP: неперехваченное исключение 'com_exception' с сообщением 'Не удалось создать COM-объект `InternetExplorer.Application': Доступ есть отклонен. ' - person ; 10.03.2009
comment
У меня даже не получается заставить работать imagegrabscreen. Как я уже сказал, я скопировал только этот код из руководства. Все, что я могу предложить, это следовать примечанию на php.net/imagegrabscreen (при условии, что вы используете Apache) . - person Ross; 10.03.2009
comment
(Обратите внимание, что в Vista, включающая поддержку рабочего стола Apache, перезапуск службы и сервера по-прежнему не работает) - person Ross; 10.03.2009

Веб-сайт отображается на стороне клиента, а PHP и GD - на стороне сервера. Вы также можете проверить этот веб-сайт. Надеюсь, поможет.

person Stiropor    schedule 09.03.2009
comment
Спасибо за ссылку, работает, ожидаю, что HTML5 / canvas не реализован. Это решение работает лучше. - person Ruut; 13.04.2014