Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Warning: imagettfbbox()
Forum PHP.pl > Forum > Przedszkole
infolearn
  1. <?php
  2. /************************
  3. odczytuje wyniki z bazy
  4. ******************/
  5.  
  6. //pobranie glosu z formularza
  7. $glos=$_REQUEST['glos'];
  8.  
  9. //zalogowanie w bazie danych
  10. if(!$bd_polacz=new mysqli('localhost','ankieta','ankieta','ankieta'))
  11. {
  12. echo 'Brak Bazy';
  13. };
  14.  
  15. if(!empty($glos)) //jezeli formularz zostal wypelniony, dodaje glos
  16. {
  17. $glos=addslashes($glos);
  18. $zapytanie="update wyniki_ankiety
  19. set ilosc_glosow = ilosc_glosow + 1
  20. where kandydat = '$glos'";
  21. if(!($wynik=@$bd_polacz->query($zapytanie)))
  22. {
  23. echo 'Brak bazy';
  24. }
  25. };
  26.  
  27. //pobieranie wynikow ankiety niezaleznie od faktu glosowania
  28.  
  29. $zapytanie='select * from wyniki_ankiety';
  30. if(!($wynik=@$bd_polacz->query($zapytanie)))
  31. {
  32. echo 'Brak bazy';
  33. };
  34.  
  35. $ilosc_kandydatow=$wynik->num_rows;
  36.  
  37. //obliczanie calkowitej liczby glosow
  38.  
  39. $ilosc_glosow=0;
  40. while ($rzad=$wynik->fetch_object())
  41. {
  42. $ilosc_glosow+=$rzad->ilosc_glosow;
  43. }
  44. $wynik->data_seek(0);//wyzerowanie wskaznika wyniku
  45.  
  46. /*****************
  47. rysowanie wynikow
  48. ***************/
  49.  
  50. //ustawienie stalych
  51.  
  52. putenv('GDFONTPATH=C:WINDOWSFonts');
  53. $szerokosc=500; //szerokosc obrazka w pikselach
  54. $lewy_margines=50; //miejsce po lewej stronie obrazka
  55. $prawy_margines=50; //prawy margines
  56. $wysokosc_slupka=40;
  57. $odleglosc_slupkow=$wysokosc_slupka/2;
  58. $czcionka='arial';
  59. $rozmiar_tytulu=16; // w stopniach
  60. $rozmiar_podstawowy=12;
  61. $rozmiar_maly=12;
  62. $wciecie_tekstu=10; //odleglosc lewych etykiet od lewej krawedzi obrazka
  63.  
  64.  
  65. //ustawienie poczatkowego punktu rysowania
  66. $x=$lewy_margines+70; //miejsce narysowania bazy wykresu
  67. $y=50;
  68. $jednostka_slupka=($szerokosc-($x+$prawy_margines))/100; //jeden stopien wykresu
  69.  
  70. //obliczenie wysokosci wykresu -slupki + przerwy + margines
  71. $wysokosc=$ilosc_kandydatow*($wysokosc_slupka+$odleglosc_slupkow)+50;
  72.  
  73. /*********************************************
  74.   Konfiguracja podstawowego obrazka
  75. *********************************************/
  76. // stworzenie pustego kadru
  77. $ob=imagecreateTrueColor($szerokosc, $wysokosc);
  78.  
  79. // Przydzielenie kolorów
  80. $bialy=ImageColorAllocate($ob,255,255,255);
  81. $niebieski=ImageColorAllocate($ob,0,64,128);
  82. $czarny=ImageColorAllocate($ob,0,0,0);
  83. $rozowy=ImageColorAllocate($ob,255,78,243);
  84.  
  85. $kolor_tekstu=$czarny;
  86. $kolor_procentow=$czarny;
  87. $kolor_tla=$bialy;
  88. $kolor_linii=$czarny;
  89. $kolor_slupka=$niebieski;
  90. $kolor_liczb=$rozowy;
  91.  
  92. // stworzenie "kadru" do rysowania
  93. ImageFilledRectangle($ob,0,0,$szerokosc-1,$wysokosc-1,$kolor_tla);
  94.  
  95. // narysowanie konturów wokól kadru
  96. ImageRectangle($ob,0,0,$szerokosc-1,$wysokosc-1,$kolor_linii);
  97.  
  98. // dodanie tytulu
  99. $tytul='Wyniki ankiety';
  100. $wymiary_tytulu=ImageTTFBBox($rozmiar_tytulu, 0, $czcionka, $tytul);
  101. $dlugosc_tytulu=$wymiary_tytulu[2]-$wymiary_tytulu[0];
  102. $wysokosc_tytulu=abs($wymiary_tytulu[7]-$wymiary_tytulu[1]);
  103. $tytul_nad_linia=abs($wymiary_tytulu[7]);
  104. $tytul_x=($szerokosc-$dlugosc_tytulu)/2; // wysrodkowanie w x
  105. $tytul_y=($y-$wysokosc_tytulu)/2+$tytul_nad_linia; // wysrodkowanie w y
  106. ImageTTFText($ob, $rozmiar_tytulu, 0, $tytul_x, $tytul_y,
  107.  $kolor_tekstu, $czcionka, $tytul);
  108.  
  109. // narysowanie bazy od nieco ponad pozycja pierwszego slupka do nieco
  110. // ponizej pozycji ostatniego
  111. ImageLine($ob, $x, $y-5, $x, $wysokosc-15, $kolor_linii);
  112.  
  113. /*********************************************
  114.   Umieszczenie danych na wykresie
  115. *********************************************/
  116. // Pobranie kazdej linii bazy danych i narysowanie odpowiadajacych slupków
  117. while ($rzad=$wynik->fetch_object())
  118. {
  119. if($ilosc_glosow>0)
  120. $procent=intval(round(($rzad->ilosc_glosow/$ilosc_glosow)*100));
  121. else
  122. $procent=0;
  123.  
  124. // wyswietlenie procentów dla tej wartosci
  125. $wymiary_procentow=ImageTTFBbox($rozmiar_podstawowy, 0, $czcionka, $procent.'%');
  126. $dlugosc_procentow=$wymiary_procentow[2]-$wymiary_procentow[0];
  127. ImageTTFText($ob,$rozmiar_podstawowy, 0, $szerokosc-$dlugosc_procentow-$wciecie_tekstu,
  128.  $y+($wysokosc_slupka/2), $kolor_procentow, $czcionka, $procent.'%');
  129.  
  130. // dlugosc slupka dla tej wartosci
  131. $dlugosc_slupka=$x+($procent*$jednostka_slupka);
  132.  
  133. // narysowanie slupka dla tej wartosci
  134. ImageFilledRectangle($ob, $x, $y-2, $dlugosc_slupka, $y+$wysokosc_slupka,
  135.  $kolor_slupka);
  136.  
  137. // narysowanie tytulu dla tej wartosci
  138. ImageTTFText($ob, $rozmiar_podstawowy, 0, $wciecie_tekstu,
  139.  $y+($wysokosc_slupka/2), $kolor_tekstu, $czcionka,
  140.  "$rzad->kandydat");
  141.  
  142. // narysowanie konturu pokazujacego 100%
  143. ImageRectangle($ob, $dlugosc_slupka+1, $y-2, ($x+(100*$jednostka_slupka)),
  144.  $y+$wysokosc_slupka, $kolor_linii);
  145.  
  146. // wyswietlenie liczb
  147. ImageTTFText($ob, $rozmiar_maly, 0, $x+(100*$jednostka_slupka)-50,
  148.  $y+($wysokosc_slupka/2), $kolor_liczb, $czcionka,
  149.  $rzad->ilosc_glosow.'/'.$ilosc_glosow);
  150.  
  151. // przesuniecie do nastepnego slupka
  152. $y=$y+($wysokosc_slupka+$odleglosc_slupkow);
  153. }
  154.  
  155. /*********************************************
  156.   Wyswietlenie obrazka
  157. *********************************************/
  158. Header('Content=type: image/png');
  159. ImagePNG($ob);
  160.  
  161. /*********************************************
  162.   Zwalnianie zasobów
  163. *********************************************/
  164. ImageDestroy($ob);
  165.  
  166. ?>


Dostaje komunikat : Nie rozumiem dlaczego skrypt nie moze znalesc czcionki probowalem sciezke na wszystkie sposoby i dalej to samo
Warning: imagettfbbox() [function.imagettfbbox]: Invalid font filename in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\pokaz_wyniki.php on line 103 + linie w ktorych odnosze sie do zmiennej $czcionka


nevt
w tym co pokazałeś to nie ustawiasz żadnej ścieżki... a i plik z nazwą czcionki źle się nazywa...
  1. <?php
  2. putenv('GDFONTPATH=C:WINDOWSFonts');
  3. //CO TO JEST ?? BO NA PEWNO NIESCIEZKA DO FONTS...
  4. //WYWAL TO
  5.  
  6. $czcionka='arial';
  7. //PODGLADALES KEIDYKOLWIEK JAK SIE NAZYWAJA PLIKI CZCIONEK?
  8. //WIDZE ZE MASZ WINDOZE, WIEC ZMIEN NA:
  9.  
  10.  $czcionka='C:WINDOWSFontsARIAL.TTF';
  11. // A NAJLEPIEJ SKOPIUJ PLIK ARIAL.TTF DO KATALOGU W KTóRYM MASZ SKRYPT, I WTEDY
  12. $czcionka='./ARIAL.TTF';
  13. //WTEDY SKRYPT BEDZIE NIEZALEZNY OD RODZAJU I KONFIGURACJI SYSTEMU
  14. ?>

powodzenia
infolearn
dalem czcione lokalnie nic mi teraz nie wywala ale zamiast grafy mam krzaczki wyswietlane

Yahoooo mam dziala:)

Dzieki za pomoc

////////////////////////////////////////

Czy ktos ma pojecie jak odnalesc obrazek *.png generowany przez skrypt? gdzie to moze sie znajdowac
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.