Intereting Posts

Захват изображения с помощью imagegrabscreen и Wamp

Я пытаюсь захватить локальную веб-страницу с помощью imagegrabscreen, но я получаю только черный снимок экрана. Я пробовал почти все решения из вопросов здесь, на SO и других сайтах, и ничего не работает.

Я использую и выполняю следующее:

  • Windows 7 64bit
  • Wamp 2.2a 64bit
  • PHP 5.3.8
  • gd2 (версия: «в комплекте 2.0.34 совместимая») установлена ​​и включена.
  • Позволяет службе apache взаимодействовать с рабочим столом.
  • У меня нет дополнительного дисплея или чего-то еще.
<?php $im = imagegrabscreen(); imagepng($im, "myscreenshot.png"); imagedestroy($im); ?> 

И все, что я получаю, это черное изображение 1024×768 png.

Solutions Collecting From Web of "Захват изображения с помощью imagegrabscreen и Wamp"

Ты можешь это сделать. Я сделал это. Я не использовал WAMP. Я использовал все отдельно. У меня есть все настройки PHP, MySQL и Apache.

Вот шаги.

  1. Остановите службу сервера Apache. Вы можете сделать это, вызвав

     NET STOP Apache2.2 

    или вы можете открыть services.msc затем остановить его.

  2. Скопируйте папку Apache2.2 из C:\ . Поместите его где-нибудь, где у вас есть полный доступ . Как Documents или на другом диске. Я положил его в K: Чтобы убедиться, что у вас есть полный доступ,

    1. Рекурсивно получить право собственности на каталог Apache.
    2. Убедитесь, что Apache2.2 Full control отмечен на вкладке « Apache2.2 папки Apache2.2 .
    3. Этот новый конфигурационный файл Apache httpd.conf будет содержать много жестко заданных путей. Как C:\apache software foundation\apache2.2 . Просто замените их новым путем. В моем случае это был K:\Apache2.2 .
  3. В настоящий момент ваша серверная служба Apache должна быть остановлена. Таким образом, порт 80 не будет заблокирован. И у вас будет свой собственный Apache на вашей собственной территории (каталог).

  4. Откройте консольное окно и перейдите в свой дом Apache, где htdocs папка htdocs вместе с некоторыми другими папками, используя cd

  5. Запустите bin\httpd.exe . Это означает, что вы используете Apache. У вас есть полный доступ к вашему рабочему столу. Вы можете сделать что угодно, так что httpd.exe
  6. Откройте свою веб-страницу. Со следующим кодом.

     <?php header("Content-type: image/png"); $im = imagegrabscreen(); imagepng($im); imagedestroy($im); exit(0); ?> 
  7. Вы увидите изображение.

Это из комментария на странице руководства php.net для imagegrabscreen (); попробуйте и посмотрите, исправляет ли он проблему, похоже, что вы работаете:

Для этого вам необходимо настроить службу Apache: «Разрешить услугу взаимодействовать с рабочим столом», иначе вы просто получите пустое изображение.

Чтобы действительно внести изменения:

  • Запустите команду services.msc качестве администратора.
  • Найдите службу Apache в списке, щелкните правой кнопкой мыши и выберите «Свойства»
  • Перейдите на вкладку «Вход в систему»
  • Измените службу, чтобы использовать локальную системную учетную запись, если она еще не
  • Установите флажок Allow this service to interact with the desktop .
  • Перезапустите службу Apache.

Если у вас возникли проблемы с imagegrabscreen (), вы можете попробовать использовать инструмент командной строки Windows для захвата экрана, такого как boxcutter . Затем используйте функцию PHP exec () для ее вызова. например:

 <?php $exec = exec('boxcutter -f image.png'); // -f is full screen option