while (Gtk::events_pending())
{
Gtk::main_iteration();
}
Это необходимо для того, чтобы убедиться, что все виджеты отображаются на экране.

Полный код программы:
<?php
while (Gtk::events_pending())
{
Gtk::main_iteration();
}
$root = Gdk::get_default_root_window();
list($width, $height) = $root->get_size();
echo 'Разрешение монитора: ' . $width . 'x' . $height . "\r\n";
$pixbuf = new GdkPixbuf(Gdk::COLORSPACE_RGB, TRUE, 8, $width, $height);
$pixbuf->get_from_drawable($root, $root->get_colormap(), 0, 0, 0, 0, $width, $height);
$pixbuf->save('screenshot.png', 'png');
?>
3 комментария:
Кстати в ПХП, а именно в библиотеке ГД есть ф-ции:
http://ca.php.net/manual/en/function.imagegrabwindow.php —
для снятия снимка окна программы и
http://ca.php.net/manual/en/function.imagegrabscreen.php — для снимка всего экрана.
Интересно, что именно зафиксирует imagegrabwindow(), какое окно? А с imagegrabscreen() у меня тоже связан один интересный вопрос: получается, можно сделать снимок экрана удаленного сервера, на котором запускается скрипт? А если на этом сервере не установлены иксы, т.е. никакого графического окружения нет, а вся настройка ведется из консоли, тогда что? Лично мне не понятно наличие данных функций в библиотеке gd.
Кстати, пакет php-gd отсутствует в стандартном репозитории Ubuntu, насколько я помню, из-за каких-то проблем с безопасностью.
Я виноват, что сразу не написал. Эти ф-ции доступны только для Виндовс платформ.
Отправить комментарий