Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] GD i klasy, problem z wyświetleniem obrazka z obiektu
vegelus
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 31.05.2005

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


Nie udało mi się znaleźć rozwiązania mojego problemu w googlech więc zwracam się z prośbą o pomoc w pewnym problemie.

Posiadam klasę główną, która na podstawie zapytania tworzy tablicę obiektów Segment (problem wcześniejszy ale okazało się, że nie można w znaczniki <a> wstawiać <table> więc zamieniam tabelkę na obrazek). W trakcie tworzenia obiektu przekazywane są parametry pobrane z zapytania. Na ich podstawie klasa Segment generuje obrazek.
Problem mój to jak wyświetlić ten obrazek.

Poniżej trochę pseudo kodu
  1. <?php
  2. class Glowna {
  3.  
  4. function __connstruct() {
  5.  $this->tablica = new Segment($pierwszy, $drugi, $trzeci ....);
  6. }
  7. function wyswietl_tablice_obiektów(){
  8. //co tu powinienem wstawić aby wyświetlić obrazki stworzone w konstruktorze
  9. }
  10.  
  11. }
  12.  
  13. class Segment{
  14. function __construct($pierwszy, $drugi, $trzeci ....){
  15. //w tym miejscu przyjmuję parametry i na ich podstawie generuję tabelę NxN z odpow
    iednimi wagami
  16. }
  17.  
  18. public function draw_img($format="png"){
  19. $img_format = strtolower($format);
  20. $wielkosc = $this->wielkosc_cegielki * $this->wielkosc_segmentu;
  21. $obrazek = imagecreate($wielkosc, $wielkosc);
  22. $kolor_s = imagecolorallocate($obrazek, 0, 0, 0);
  23. $kolor_p = imagecolorallocate($obrazek, 127, 200, 0);
  24. ImageFill($obrazek,1,1,$kolor_podlogi);
  25. for($i = 1; $i <= $this->wielkosc_segmentu; $i++){
  26. for($j = 1; $j <= $this->wielkosc_segmentu; $j++){
  27. if($this->tablica[$i][$j] == 1){
  28. ImageFilledRectangle($obrazek, $x1, $y1, $x2, $y2, $kolor_s);
  29. }else {
  30. ImageFilledRectangle($obrazek, $x1, $y1, $x2, $y2, $kolor_p);
  31. }
  32. }
  33. }
  34. header ("Content-type: image/" . $this->img_format);
  35. switch ($this->img_format) {
  36. case "png": ImagePNG ($obrazek); break;
  37. default: ImageJPEG ($obrazek);
  38. }
  39. imagedestroy($obrazek);
  40. }
  41. }
  42. ?>


Jeszcze jedno działa mi wyświetlanie poprzez poniższy plik

  1. <?php
  2. include("segment.class.php");
  3. $my_image = new Segment1;
  4. $my_image->draw_img();
  5. ?>


lecz to rozwiązanie wymaga pobrania z bazy danych NxN rekordów co może być lekko uciążliwe przy dużej oglądalności strony dlatego interesuje mnie możliwość wyświetlania obrazków z wnętrza klasy.

Ten post edytował vegelus 19.10.2007, 12:47:22
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 23:30