Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Problem z funkcją imagecreateTrueColor()
henio
post
Post #1





Grupa: Zarejestrowani
Postów: 237
Pomógł: 1
Dołączył: 15.10.2004
Skąd: Lublin

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


  1. <?php
  2. /*********************************************
  3.   Zapytanie bazy danych odczytujące wynik ankiety
  4. *********************************************/
  5. include("admin/funkcje.php");
  6. include("admin/baza.php");
  7.  
  8. // pobranie głosu z formy
  9. @$glos=@$_REQUEST['glos'];
  10.  
  11. if(!empty($glos)) // jeżeli formularz został wypełniony, dodanie głosu
  12. {
  13. $zapytanie="UPDATE sondy_odpowiedzi
  14. set liczba_glosow = liczba_glosow + 1
  15. where odpowiedz = '$glos'";
  16. $wynik = mysqli_query($mysql, $zapytanie) or die('zapytanie: '.$zapytanie.'---blad:'.mysqli_error($mysql));
  17. };
  18.  
  19. // pobranie aktualnych wyników ankiety, niezależnie od faktu głosowania
  20. $zapytanie='select * from sondy_odpowiedzi WHERE id_sonda = ".$id_sonda."';
  21. $wynik = mysqli_query($mysql, $zapytanie) or die('zapytanie: '.$zapytanie.'---blad:'.mysqli_error($mysql));
  22. $ilosc_kandydatow=$wynik->num_rows;
  23.  
  24. // obliczenie całkowitej liczby głosów
  25. $ilosc_glosow=0;
  26. while ($rzad=$wynik->fetch_object())
  27. {
  28. $ilosc_glosow+=$rzad->ilosc_glosow;
  29. }
  30. $wynik->data_seek(0); // wyzerowanie wskaźnika wyniku
  31.  
  32. /*********************************************
  33.   Początkowe obliczenia wykresu
  34. *********************************************/
  35. // ustawienie stałych
  36. putenv('GDFONTPATH=C:WINDOWSFonts');
  37. $szerokosc=500;  //szerokosc obrazka w pikselach - ta zmieści się w rozdzielczości 640x480
  38. $lewy_margines=50; // miejsce pozostawiane po lewej stronie obrazka
  39. $prawy_margines=50; // to samo dla strony prawej
  40. $wysokosc_slupka=40;
  41. $odleglosc_slupkow=$wysokosc_slupka/2;
  42. $czcionka='arial';
  43. $rozmiar_tytulu=16; // w stopniach
  44. $rozmiar_podstawowy=12; // w stopniach
  45. $rozmiar_maly=12; // w stopniach
  46. $wciecie_tekstu=10; //odległość lewych etykiet tekstowych od lewej krawędzi obrazka
  47.  
  48. // ustawienie początkowego punktu rysowania
  49. $x=$lewy_margines+70; //miejsce narysowania bazy wykresu
  50. $y=50; //to samo
  51. $jednostka_slupka=($szerokosc-($x+$prawy_margines))/100; //jeden "stopień" wykresu
  52.  
  53. // obliczenie wysokości wykresu - słupki plus przerwy plus pewien margines
  54. $wysokosc=$ilosc_kandydatow*($wysokosc_slupka+$odleglosc_slupkow)+50;
  55.  
  56. /*********************************************
  57.   Konfiguracja podstawowego obrazka
  58. *********************************************/
  59. // stworzenie pustego kadru
  60. $ob=imagecreateTrueColor($szerokosc, $wysokosc);
  61.  
  62. // Przydzielenie kolorów
  63. $bialy=ImageColorAllocate($ob,255,255,255);
  64. $niebieski=ImageColorAllocate($ob,0,64,128);
  65. $czarny=ImageColorAllocate($ob,0,0,0);
  66. $rozowy=ImageColorAllocate($ob,255,78,243);
  67.  
  68. $kolor_tekstu=$czarny;
  69. $kolor_procentow=$czarny;
  70. $kolor_tla=$bialy;
  71. $kolor_linii=$czarny;
  72. $kolor_slupka=$niebieski;
  73. $kolor_liczb=$rozowy;
  74.  
  75. // stworzenie "kadru" do rysowania
  76. ImageFilledRectangle($ob,0,0,$szerokosc-1,$wysokosc-1,$kolor_tla);
  77.  
  78. // narysowanie konturów wokół kadru
  79. ImageRectangle($ob,0,0,$szerokosc-1,$wysokosc-1,$kolor_linii);
  80.  
  81. // dodanie tytułu
  82. $tytul='Wyniki ankiety';
  83. $wymiary_tytulu=ImageTTFBBox($rozmiar_tytulu, 0, $czcionka, $tytul);
  84. $dlugosc_tytulu=$wymiary_tytulu[2]-$wymiary_tytulu[0];
  85. $wysokosc_tytulu=abs($wymiary_tytulu[7]-$wymiary_tytulu[1]);
  86. $tytul_nad_linia=abs($wymiary_tytulu[7]);
  87. $tytul_x=($szerokosc-$dlugosc_tytulu)/2; // wyśrodkowanie w x
  88. $tytul_y=($y-$wysokosc_tytulu)/2+$tytul_nad_linia; // wyśrodkowanie w y
  89. ImageTTFText($ob, $rozmiar_tytulu, 0, $tytul_x, $tytul_y,
  90.  $kolor_tekstu, $czcionka, $tytul);
  91.  
  92. // narysowanie bazy od nieco ponad pozycją pierwszego słupka do nieco 
  93. // poniżej pozycji ostatniego
  94. ImageLine($ob, $x, $y-5, $x, $wysokosc-15, $kolor_linii);
  95.  
  96. /*********************************************
  97.   Umieszczenie danych na wykresie
  98. *********************************************/
  99. // Pobranie każdej linii bazy danych i narysowanie odpowiadających słupków
  100. while ($rzad=$wynik->fetch_object())
  101. {
  102. if($ilosc_glosow>0)
  103. $procent=intval(round(($rzad->ilosc_glosow/$ilosc_glosow)*100));
  104. else
  105. $procent=0;
  106.  
  107. // wyświetlenie procentów dla tej wartości
  108. $wymiary_procentow=ImageTTFBbox($rozmiar_podstawowy, 0, $czcionka, $procent.'%');
  109. $dlugosc_procentow=$wymiary_procentow[2]-$wymiaryprocentow[0];
  110. ImageTTFText($ob,$rozmiar_podstawowy, 0, $szerokosc-$dlugosc_procentow-$wciecie_tekstu,
  111.  $y+($wysokosc_slupka/2), $kolor_procentow, $czcionka, $procent.'%');
  112.  
  113. // długość słupka dla tej wartości
  114. $dlugosc_slupka=$x+($procent*$jednostka_slupka);
  115.  
  116. // narysowanie słupka dla tej wartości
  117. ImageFilledRectangle($ob, $x, $y-2, $dlugosc_slupka, $y+$wysokosc_slupka, 
  118.  $kolor_slupka);
  119.  
  120. // narysowanie tytułu dla tej wartości
  121. ImageTTFText($ob, $rozmiar_podstawowy, 0, $wciecie_tekstu,  
  122.  $y+($wysokosc_slupka/2), $kolor_tekstu, $czcionka, 
  123.  "$rzad->kandydat");
  124.  
  125. // narysowanie konturu pokazującego 100%
  126. ImageRectangle($ob, $dlugosc_slupka+1, $y-2, ($x+(100*$jednostka_slupka)),
  127.  $y+$wysokosc_slupka, $kolor_linii);
  128.  
  129. // wyświetlenie liczb
  130. ImageTTFText($ob, $rozmiar_maly, 0, $x+(100*$jednostka_slupka)-50, 
  131.  $y+($wysokosc_slupka/2), $kolor_liczb, $czcionka, 
  132.  $rzad->ilosc_glosow.'/'.$ilosc_glosow);
  133.  
  134. // przesunięcie do następnego słupka
  135. $y=$y+($wysokosc_slupka+$odleglosc_slupkow);
  136. }
  137.  
  138. /*********************************************
  139.   Wyświetlenie obrazka
  140. *********************************************/
  141. Header('Content=type: image/png');
  142. ImagePNG($ob);
  143.  
  144. /*********************************************
  145.   Zwalnianie zasobów
  146. *********************************************/
  147. ImageDestroy($ob);
  148. ?>

Mam skrypt, który ma mi tworzyć wykres na podstawie danych z sondy.

Wyskakuje mi taki problem:
Fatal error: Call to undefined function imagecreateTrueColor() in C:\Program Files\Apache Group\Apache2\htdocs\stronka\pokaz_wyniki.php on line 61

Fatal error: Call to undefined function ImageColorAllocate() in C:\Program Files\Apache Group\Apache2\htdocs\stronka\pokaz_wyniki.php on line 64

Fatal error: Call to undefined function ImageColorAllocate() in C:\Program Files\Apache Group\Apache2\htdocs\stronka\pokaz_wyniki.php on line 65

Fatal error: Call to undefined function ImageColorAllocate() in C:\Program Files\Apache Group\Apache2\htdocs\stronka\pokaz_wyniki.php on line 66

Fatal error: Call to undefined function ImageColorAllocate() in C:\Program Files\Apache Group\Apache2\htdocs\stronka\pokaz_wyniki.php on line 67

Fatal error: Call to undefined function ImageFilledRectangle() in C:\Program Files\Apache Group\Apache2\htdocs\stronka\pokaz_wyniki.php on line 77

Fatal error: Call to undefined function ImageRectangle() in C:\Program Files\Apache Group\Apache2\htdocs\stronka\pokaz_wyniki.php on line 80

Fatal error: Call to undefined function ImageTTFBBox() in C:\Program Files\Apache Group\Apache2\htdocs\stronka\pokaz_wyniki.php on line 84

Ten post edytował henio 17.08.2007, 14:58:00
Go to the top of the page
+Quote Post

Posty w temacie


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: 21.08.2025 - 02:26