LINUX.ORG.RU

Как сделать программно скриншот в Ubuntu (Linux) на Perl


0

0

Появилась необходимости добавить в web-приложение (сайт, который работает только на на локальной машине) функционал, который позволяет сделать снимок экрана и сохранить его на диске в случае непредвиденной ошибки сайта (web-приложения) или просто по запросу от сайта. CGI скрипт сайта написан на Perl. Так как я занимаюсь в основном вэб-разработкой, как программно делать скриншот, я не знаю и прошу вашей помощи.

перлом вызвать системную команду scrot?

aydar ★★★★★ ()

Можно заюзать перловые биндинги к imagemagick, а можно просто вызвать import/scrot/что-там-ещё функцией system(). Но я вот что-то не понял - ты хочешь сделать скриншот из cgi-скрипта? Тогда тебе надо будет ещё и окружение немного поднастроить, чтоб у апача DISPLAY был указан, а у твоих иксов было разрешено подключение к ним.

Laz ★★★★★ ()

только демон слушающий на каком-нить порту спасёт отца русской демократии.

dimon555 ★★★★★ ()
Ответ на: комментарий от Laz

Да, скриншот дожен делать cgi-скрипт. Я пробовал сделать это с помощью вызота «xwd | xwdtopnm | pnmtopng > Screenshot.png» (xwdtopnm и pnmtopng были установленны) функцией system(), но этот вариант не работал (создавался файл, но писал в него).Наверно проблема в настройки окружения. Буду признателен, если вы мне подскажите как настроить окружение, чтоб все работала.

kozlodoev ()
Ответ на: комментарий от kozlodoev

> Буду признателен, если вы мне подскажите как настроить окружение, чтоб все работала.

BEGIN { $ENV{DISPLAY} = 'localhost:0.0' }

или

my $image = `xwd -display localhost:0.0 -root … | …`
arsi ★★★★★ ()
Ответ на: комментарий от kozlodoev

так xwd ждет от пользователя указания какоe окно сохранять! man xwd на предмет опций -root, -id, -name

sigurd ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.