Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHP - wykonanie screenshota - czarna grafika
mikolajjj
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 23.08.2008

Ostrzeżenie: (0%)
-----


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

Ten post edytował mikolajjj 1.09.2012, 16:19:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Spawnm
post
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Proszę nadać sensowny tytuł tematu.
Go to the top of the page
+Quote Post
cv65
post
Post #3





Grupa: Zarejestrowani
Postów: 94
Pomógł: 9
Dołączył: 12.04.2009

Ostrzeżenie: (20%)
X----


  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

Ten post edytował cv65 2.09.2012, 11:01:57
Go to the top of the page
+Quote Post
klocu
post
Post #4





Grupa: Zarejestrowani
Postów: 291
Pomógł: 45
Dołączył: 21.08.2007

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/wink.gif)

Ten post edytował klocu 2.09.2012, 12:43:51
Go to the top of the page
+Quote Post
mikolajjj
post
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 23.08.2008

Ostrzeżenie: (0%)
-----


@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??
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:10