Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: uzycie biblioteki GD
Forum PHP.pl > Forum > PHP
nice20
Witam,

mam taki problem. Próbóję się nauczyć obsługi GD i już na wstępie napotkałem mury nie do przejścia... Mam taki kod.

  1. <?php
  2.  
  3. $radius=300;
  4. header("content-Type: image/gif");
  5. header("refresh: 1");
  6.  
  7. $size=300;
  8.  
  9. $img = ImageCreate($size, $size);
  10. $color_alpha = ImageColorAllocate($img, 254, 254, 254);
  11. $color_black = ImageColorAllocate($img, 0, 0, 0);
  12.  
  13.  
  14. do
  15. {
  16. $radius-=15;
  17. ImageArc($img, 150, 150, $radius, $radius, 0, 360, $color_black);
  18. } while ($radius>0);
  19.  
  20. ImagePNG($img);
  21. ImageDestroy($img);
  22.  
  23. ?> 


chciałbym aby albo kółka rysowały się po odświerzeniu ekranu albo (nie wiem czy to możliwe) w czasie rzeczywistym bez odświerzania, ale tak aby było to widać.
zuczek
php nie jest w stanie wygenerować animowanego gifa. A odświeżanie nic nie da.
nice20
to co w takim razie proponujesz zrobic?

znalazłem w sieci taki skrypt, który jako tako działa... tutaj przynajmniej widać, że wskazówka się rusza...

  1. <?php
  2. if (! $size > 0)
  3. {
  4. $size = 300;
  5. }
  6.  
  7. $radius = floor($size / 2);
  8.  
  9. header("content-Type: image/gif");
  10. header("refresh: 1");
  11.  
  12. $img = ImageCreate($size, $size);
  13. $color_alpha = ImageColorAllocate($img, 254, 254, 254);
  14. $color_white = ImageColorAllocate($img, 255, 255, 255);
  15. $color_black = ImageColorAllocate($img, 0, 0, 0);
  16. $color_gray = ImageColorAllocate($img, 192, 192, 192);
  17. $color_red  = ImageColorAllocate($img, 255, 0, 0);
  18. $color_blue = ImageColorAllocate($img, 0, 0, 255);
  19. ImageColorTransparent($img, $color_alpha);
  20. ImageArc($img,$radius, $radius, $size, $size, 0, 360, $color_black);
  21. ImageFill($img, $radius, $radius, $color_white);
  22. $min = 0;
  23. while($min++ < 60) {
  24. if ($min % 15 == 0)
  25. $len = $radius / 5;
  26. elseif ($min % 5 == 0)
  27. $len = $radius / 10;
  28. else
  29. $len = $radius / 25;
  30. $ang = (* M_PI * $min) / 60;
  31. $x1 = sin($ang) * ($radius - $len) + $radius;
  32. $y1 = cos($ang) * ($radius - $len) + $radius;
  33. $x2 = (+ sin($ang)) * $radius;
  34. $y2 = (+ cos($ang)) * $radius;
  35. ImageLine($img, $x1, $y1, $x2, $y2, $color_black);
  36. }
  37. list($hour, $min, $sec) = preg_split ("/-/", Date("h-i-s", Time()));
  38. $hour = $hour % 12;
  39. $xs = intval(cos($sec * M_PI/30 - M_PI/2) * 0.75 * $radius + $radius);
  40. $ys = intval(sin($sec * M_PI/30 - M_PI/2) * 0.75 * $radius + $radius);
  41. $xm = intval(cos($min * M_PI/30 - M_PI/2) * 0.65 * $radius + $radius);
  42. $ym = intval(sin($min * M_PI/30 - M_PI/2) * 0.65 * $radius + $radius);
  43. $xh = intval(cos($hour** M_PI/30 - M_PI/2) * 0.* $radius + $radius);
  44. $yh = intval(sin($hour** M_PI/30 - M_PI/2) * 0.* $radius + $radius);
  45. ImageLine($img, $radius, $radius,  $xs, $ys, $color_gray);
  46. ImageLine($img, $radius, $radius-1, $xm, $ym, $color_blue);
  47. ImageLine($img, $radius-1, $radius, $xm, $ym, $color_blue);
  48. ImageLine($img, $radius, $radius-1, $xh, $yh, $color_blue);
  49. ImageLine($img, $radius-1, $radius, $xh, $yh, $color_blue);
  50. ImageArc($img, $radius, $radius, $radius / 8, $radius / 8, 0, 360, $color_red);
  51. ImageFillToBorder($img, $radius, $radius, $color_red, $color_red);
  52.  
  53.  
  54. ImagePNG($img);
  55. ImageDestroy($img);
  56. ?>
zuczek
Ale ten skrypt pobiera date i ją wyświetka w sposób gragiczny!
  1. <?php
  2. list($hour, $min, $sec) = preg_split ("/-/", Date("h-i-s", Time()));
  3. ?>

a odświeżanie tylko uaktualnia datę i rysuje wskazówkę o jakiś kąt dalej.
Chyba nie przestudiowałeś dokładnie skryptu.
nice20
no fakt, o tym nie pomyslalem :/

nie ma jednak jakiejs mozliwosci aby cos takiego zrobic? po co w takim razie jest ta biblioteka?
mike
Cytat(nice20 @ 2005-12-13 12:43:09)
po co w takim razie jest ta biblioteka?
google.com :: search :: php + GD + examples
zuczek
Wszelkiego rodzaju wykresy notowań giełdowych, miniaturki itp. są generowane przez biblioteke GD (GD2). Ale wszystkie generowane obrazki są statyczne(w rozumieniu dynamicznym). Trochę zamotałem ale chyba jasne.
nice20
Ok, w takim razie rozumiem już, ale czy w takim razie jest jakaś biblioteka do generowania obrazu w czasie rzeczywistym (bez odświerzania) questionmark.gif
zuczek
Raczej nie w php. Możesz się posłużyć JavaScript ale w JS nie otrzymasz gifa. Myślę ze musisz sam zrobić tego gifa albo zainteresować sie Flashem!
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.