Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyświetlanie dynamicznej grafiki
Forum PHP.pl > Forum > PHP
Riklaunim
Mam klasę generującą wykresik - zwraca ona obrazek PNG i nie wiem jak zrobić by moża było na "żywo" generowanie wykresów na stronie HTML. Próbowałem robić to z tempnam lecz generowane pliki tymczasowe są jakieś dziwne (linux) - nie mam do nich praw (nouser/nogroup) i się na żywo nie wyświetlą tongue.gif
  1. <?php
  2.  
  3. $g->SetRectangleBorderColor(124, 128, 239);
  4. $g->SetRectangleBackgroundColor(194, 194, 239);
  5. $g->SetFontColor(255, 255, 255);
  6. $g->SetBorderWidth(0);
  7. $g->SetData($arr);
  8. $g->Draw();
  9. // PNG pod zmienną X
  10. $x = ob_get_contents();
  11.  
  12. $tmpfname = tempnam(&#092;"a/\", \"gstat\");
  13. $handle = fopen($tmpfname, &#092;"w\");
  14. fwrite($handle, $x);
  15. echo '<center><img src=\"'.$tmpfname.'\"></center>';
  16. fclose($handle);
  17. unlink($tmpfname);
  18.  
  19. ?>
crash
A dlaczego nie wysłać odpowiedniego nagłówka, wyświetlić grafikę bezpośrednio i zrobić <img src="skrypt.php"/>?
bela
klasa? ja nic nie widze poza przykladem
Riklaunim
Cytat(bela_666 @ 2005-01-20 01:46:07)
klasa? ja nic nie widze poza przykladem

Mam ci wstawić całego bargrafa zajmującego kilkaset linijek? Chodzi o efekt końcowy.

co do nagłówków. SRC oczekuje linku do pliku. Jeżeli bym dał nagłówek że to HTML/text to wywali plik jako tekst tongue.gif
kszychu
Bo to trzeba na dwóch plikach zrobić:
pierwszy to plik generujący grafikę. I tylko grafikę, bez żadnych wstawek html czy innych. Dajesz jej odpowiednie nagłówki i generuje grafikę
drugi to plik wywołujący ten pierwszy w sposób: <img src="pierwszy.php?parametry">
crash
Cytat(Riklaunim)
Jeżeli bym dał nagłówek że to HTML/text to wywali plik jako tekst

Świetny pomysł, ale jednak proponowałbym image/png na przykład.
Riklaunim
Cytat(crashu @ 2005-01-20 13:01:36)
Świetny pomysł, ale jednak proponowałbym image/png na przykład.

wtedy HTML się nie pokaże tongue.gif

Obecnie mam to na 2 plikach smile.gif tj. generowany jest plik tymczasowy
kszychu
Po co jakieś pliki tymczasowe? Nie możesz z jednego pliku wywołać drugiego, tak, jak Ci to wyżej opisałem?
crash
To może spróbuj to zrobić tak jak radzi kszychu i ja.
Riklaunim
muszę przekazać tablicę z danymi do wykresu. Próbowałem przez _GETa z serializowano/base64_encodowaną tablicą. Problem w tym że jest limit długości linka i wykresów powyżej 2-3 pozycji już nie rysowało bo tablica nie przechodziła tongue.gif hm.... może w cookie się zmieści tongue.gif
crash
A po co przekazywać? Niech skrypt generujący grafikę sam je pobierze.
dr_bonzo
(obrazek.php)
- skrypt tworzy plik graficzny (przechowywany w $img)
- wysylasz naglowki: header('Content-Type: image/png');
- imagepng ( $img )

to tyle.

Wywolanie
  1. <img src="obrazek.php?paramter=wartowc" ... />
FiDO
Nie ten dzial, przenosze na php.
Riklaunim

Zrobione w miarę sensownie smile.gif ale jak widać trzeba będzie trochę propagandy zasiać w sieci biggrin.gif (prosta klasa google zwraca liczbę trafień dla danej frazy a te wyniki lecą do bargraf'a ) obie klasy na phpclasses.net
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.