Я пытаюсь захватить локальную веб-страницу с помощью imagegrabscreen, но я получаю только черный снимок экрана. Я пробовал почти все решения из вопросов здесь, на SO и других сайтах, и ничего не работает.
Я использую и выполняю следующее:
<?php $im = imagegrabscreen(); imagepng($im, "myscreenshot.png"); imagedestroy($im); ?> 
И все, что я получаю, это черное изображение 1024×768 png.
Ты можешь это сделать. Я сделал это. Я не использовал WAMP. Я использовал все отдельно. У меня есть все настройки PHP, MySQL и Apache.
Вот шаги.
Остановите службу сервера Apache. Вы можете сделать это, вызвав
 NET STOP Apache2.2 
  или вы можете открыть services.msc затем остановить его. 
  Скопируйте папку Apache2.2 из C:\ .  Поместите его где-нибудь, где у вас есть полный доступ .  Как Documents или на другом диске.  Я положил его в K:  Чтобы убедиться, что у вас есть полный доступ, 
Apache2.2 Full control отмечен на вкладке « Apache2.2 папки Apache2.2 . httpd.conf будет содержать много жестко заданных путей.  Как C:\apache software foundation\apache2.2 .  Просто замените их новым путем.  В моем случае это был K:\Apache2.2 . В настоящий момент ваша серверная служба Apache должна быть остановлена. Таким образом, порт 80 не будет заблокирован. И у вас будет свой собственный Apache на вашей собственной территории (каталог).
  Откройте консольное окно и перейдите в свой дом Apache, где htdocs папка htdocs вместе с некоторыми другими папками, используя cd 
bin\httpd.exe .  Это означает, что вы используете Apache.  У вас есть полный доступ к вашему рабочему столу.  Вы можете сделать что угодно, так что httpd.exe Откройте свою веб-страницу. Со следующим кодом.
 <?php header("Content-type: image/png"); $im = imagegrabscreen(); imagepng($im); imagedestroy($im); exit(0); ?> 
Вы увидите изображение.
Это из комментария на странице руководства php.net для imagegrabscreen (); попробуйте и посмотрите, исправляет ли он проблему, похоже, что вы работаете:
Для этого вам необходимо настроить службу Apache: «Разрешить услугу взаимодействовать с рабочим столом», иначе вы просто получите пустое изображение.
Чтобы действительно внести изменения:
services.msc качестве администратора. Allow this service to interact with the desktop . Если у вас возникли проблемы с imagegrabscreen (), вы можете попробовать использовать инструмент командной строки Windows для захвата экрана, такого как boxcutter . Затем используйте функцию PHP exec () для ее вызова. например:
 <?php $exec = exec('boxcutter -f image.png'); // -f is full screen option