Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP - wykonanie screenshota - czarna grafika
Forum PHP.pl > Forum > PHP
mikolajjj
Witam,

chciałbym wykonać screenshot strony widniejącej w przeglądarce, ale mam problem, wykorzystuję funkcje biblioteki GD imagegrabwindow i imagegrabscreen ale zapisuje mi się czarny obraz (chociaż zapisuje dość długo, tak jakby przetwarzał).

próbowałem wg przykładu z manuala:
  1. $browser = new COM("InternetExplorer.Application");
  2. $handle = $browser->HWND;
  3. $browser->Visible = true;
  4. $browser->Navigate("http://www.google.pl/");
  5.  
  6. /* Still working? */
  7. while ($browser->Busy) {
  8. com_message_pump(4000);
  9. }
  10. $im = imagegrabwindow($handle, 0);
  11. $browser->Quit();
  12. imagepng($im, "dd.png");
  13. imagedestroy($im);


potem curl'em
  1. $ch = curl_init('http://www.google.pl/');
  2.  
  3. $options = array(#CURLOPT_FILE => $fp,
  4. CURLOPT_HEADER => 0,
  5. CURLOPT_FOLLOWLOCATION => 1,
  6. CURLOPT_TIMEOUT => 60);
  7. curl_setopt_array($ch, $options);
  8.  
  9. curl_exec($ch);
  10.  
  11.  
  12. $im = imagegrabscreen();
  13. imagepng($im, "im8.png");
  14. imagedestroy($im);
  15. curl_close($ch);



curl prawidłowo wyświetla stronę, ale imagegrabscreen zapisuje czarną grafikę.

proszę o pomoc, czy istnieje jakiś sposób na zrobienie screenshota?

Z góry dzięki
Spawnm
Proszę nadać sensowny tytuł tematu.
cv65
  1. <?php
  2. $img = imagegrabscreen();
  3. imagepng($img, 'screenshot.png');
  4. ?>


  1. <?php
  2. $Browser = new COM('InternetExplorer.Application');
  3. $Browserhandle = $Browser->HWND;
  4. $Browser->Visible = true;
  5. $Browser->Fullscreen = true;
  6. $Browser->Navigate('http://www.google.com');
  7.  
  8. while($Browser->Busy){
  9. com_message_pump(4000);
  10. }
  11.  
  12. $img = imagegrabwindow($Browserhandle, 0);
  13. $Browser->Quit();
  14. imagepng($img, 'screenshot.png');
  15. ?>


Wymagane min PHP 5.2.2
A działa tylko na systemie windows
klocu
Nie ma co się tak bezpośrednio skupiać na kodzie.
Serwer prawidłowo skonfigurowany (pod Windows)?

Zarządzanie komputerem -> Usługi i Aplikacje -> Usługi -> Apache 2.x -> Właściwości -> Logowanie (zakładka)
Zaznaczyć: Lokalne konto systemowe i zaptaszkować Zezwalaj usłudze na współdziałanie z pulpitem.

To jest główna przyczyna zrzucania czarnych obrazów.

--
W komentarzach do dokumentacji jest jasno opisane dlaczego nie działa wink.gif
mikolajjj
@klocu dzięki wielkie, zmieniłem tą funkcję, i imagegrabscreen generuję ładną grafikę łącznie z zawartością flasha. niestety imagegrabwindow nadal generuje czarne. nawet w IE widać okno z paskami explorera ale zawartość strony jest czarna. Potrzebuję zapisywać tylko zawartość strony a nie ekranu. Czy macie pomysł jak to zrobić, aby uniezależnić się od przegląrki (żeby działało i pod ff i ie)? czy istnieje np. opcja aby skrypt symulował przejście na pełny ekran, tak aby zapisać zawartość tylko strony, ale użytkownik nie widział takiego przejścia na fullscreen? dlaczego imagegrabwindow nie działa??
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.