Я пытаюсь захватить локальную веб-страницу с помощью 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