Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> uzycie biblioteki GD
nice20
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.12.2005

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


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ć.

Ten post edytował nice20 12.12.2005, 23:04:19
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
zuczek
post
Post #2





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 6.06.2005
Skąd: CBŚ

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


php nie jest w stanie wygenerować animowanego gifa. A odświeżanie nic nie da.
Go to the top of the page
+Quote Post
nice20
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.12.2005

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


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. ?>
Go to the top of the page
+Quote Post
zuczek
post
Post #4





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 6.06.2005
Skąd: CBŚ

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


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.
Go to the top of the page
+Quote Post
nice20
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.12.2005

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


no fakt, o tym nie pomyslalem :/

nie ma jednak jakiejs mozliwosci aby cos takiego zrobic? po co w takim razie jest ta biblioteka?
Go to the top of the page
+Quote Post
mike
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(nice20 @ 2005-12-13 12:43:09)
po co w takim razie jest ta biblioteka?
google.com :: search :: php + GD + examples
Go to the top of the page
+Quote Post
zuczek
post
Post #7





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 6.06.2005
Skąd: CBŚ

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


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.
Go to the top of the page
+Quote Post
nice20
post
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 11.12.2005

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


Ok, w takim razie rozumiem już, ale czy w takim razie jest jakaś biblioteka do generowania obrazu w czasie rzeczywistym (bez odświerzania) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
zuczek
post
Post #9





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 6.06.2005
Skąd: CBŚ

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


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!
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 12.10.2025 - 15:42