Как я могу создать снимок экрана памяти с php в Unix (Debian) - PullRequest
1 голос
/ 18 января 2011

Следующий код доступен только для Windows.

<?php
  ...
  $im = imagegrabwindow($handle);
  ...      
  imagedestroy($im);
?>

Какое решение в среде PHP Unix (Debian), получить снимок экрана в программе php cli?

1 Ответ

1 голос
/ 18 января 2011

Похоже, вы хотите снимать экраны из Firefox: стр.

Для безголового сервера сначала убедитесь, что Xvfb установлен, а затем запустите его с Xvfb :2 -screen 0 1024x768x24& (вы можете, конечно, изменить отображение : 2 и разрешение 1024x768x24 ) ,

Запустите Firefox, чтобы открыть определенную страницу на этом дисплее DISPLAY=:2 firefox <a href="http://www.example.com" rel="nofollow">http://www.example.com</a>. Немного подождите, пока Firefox откроет страницу, поэтому выполните sleep 10 или что-то подобное.

А затем добавьте некоторое «волшебство» из ImageMagick (которое, конечно, должно быть установлено), чтобы захватить экран в файл: import -window root -display :2 example.png.

И теперь начинается ваше веселье: стр.

Вот небольшой bash-скрипт, объединяющий все это (Xvfb должен уже работать, хотя для того, чтобы он работал):

#!/bin/bash
export DISPLAY=":2" /usr/bin/firefox "$1"&
/bin/sleep 10
/usr/bin/import -window root -display :2 "$2"
killall firefox-bin

Вызовите это из PHP и предоставьте в качестве параметров URL и имя файла снимка экрана.

Кстати, если на вашем сервере есть X, вы можете пропустить часть Xvfb и использовать отображение работающего X-сервера (наиболее вероятно: 0).

...