Pomoc - Szukaj - Uytkownicy - Kalendarz
Pena wersja: Tworzenie grafiki - wyskakuj same znaczki
Forum PHP.pl > Forum > PHP
bigos1995-95
Witam, mam kod z ksiazki PHP i MySQL wydanie 4. Kod ma za zadanie stworzy przycisk a wywietla jakie same znaczki:

Kod
PNG  IHDRCk)MIDATx]M\Օ>شn8 `, (;E,P$B(̌b2f@ʆE ag%E)DD& (6&v޻3UM>Uzu}uϽe8zc\-<<<|xĆH*"d6!y-: 1f`|]< ~,RN5R"fqEyZ[~{F gF(HJ5 juEðZF}K{SNguu55; *eHYk5%)X7z$"DN k#RAJgf̑#Z\T(xu]bО1c       rbRP)љ[eE'0AFAɘdq7d-Zpjg{aAn '̜$I5W#&?cj%'jN5d <$c;jJE/OϞ8qҫv?aO gA)'QÏ541=^|Q}]wčMda$1 | p}RÄ,3IVZ($ d͐K~x[ykHk.5\WZW|٫y (yRr0"h$m85_fȟRJi)ZZ 1b)cjc6M!_[b{w?D_uz}Wb@8 r߄     Ȍ&M^zy=^-K)\'{8ĞZӊsYl$M]UR.~Jꭷj   ^)R t"!dfdF٤e[="Ɇ"""f>=6%&fc8јhI(N8lan9IF!O2 6.!ϸn\(7b)4n"6,Y4DsR)լME C['~[zii<u0bfb&"˨q]:w}bP*\. D2"H em2g ,/ Gy NqUou79s?Te9DʭɸDل_oqP[ PkbDbe\6!fp7?ʍ7vu?lW[=xzu=tHϞݚn=s9,)9yi)NӬnx-DFDDHQцYP/1_CxPAɣGgzȟEi߾7==D&,fJU)'բuKYbARX*/~pB03ȑg0    `LJ˙寇"I)ўdEaZw1u[3<rXiX~-TX-bQJJp#U޶mvܹfNs*皊bo]ȑMN`>:3RnSR<9+Fˮ\) S|Q)3+,[]Dq0bh.\`vv[?͢I aO0o 3@a8bBƅ^[ l"m!9}ڎ>Aw:}*(T (gծnmа?;s׾6 BCJIEV($*d%y:S?X~Wss|izYM*Dv @g)| $]Oyq (5`?:|zRO'r![ T6@.qdD X8JF#G(MejgГ?!HDbu]\rpbeA6F+xfS<SĚ    4܎Gygt *S.<~C7rC4)sB &D    Qœ"ev};"SS;59BK8JIg\<0ZϧXܫ]l?fM0w;D1D cvlWbz8;ϓuLY謷*V߈DW#LQ2D    Q1&Jrs(b\={8 (ncbuiw)B=߶-6緿5.SgzxL`K[cs-*&0#2&\nEBDaz^5x@:QDaJ)(r-*P&2 DԧTRJ%K{H8Ba)mۖ|яpu}%Zwk< &DyNs]޾}:*J\ -=]/*APVumVVֺ]O?Tb>G&e^ط}0VZZei})b\ADQTi[ܲկ?) Ȳs9B}[!̲ 4̎1.7.[ Z:11QׅBKmhїB0,˥8۝n//8Z%)e օݰRD`}N87<;[)d"})IиyQcj$I&\/.,p!27G:`]c 苶0y̭Z;77r- T e'zH!9}_XP8;;



tworz_przycisk.php
  1. <?php
  2. // sprawdzenie, czy dostpne s odpowiednie dane zmiennych
  3. // zmienne to tekst_przycisku oraz kolor
  4.  
  5. $tekst_przycisku = $_REQUEST['tekst_przycisku'];
  6. $kolor = $_REQUEST['kolor'];
  7.  
  8. if (empty($tekst_przycisku) || empty($kolor))
  9. {
  10. echo 'Stworzenie obrazka niemoliwe - formularz wypeniony niepoprawnie';
  11. }
  12.  
  13. // utworzenie obrazka o prawidowym tle oraz sprawdzenie wielkoci
  14. $ob = imagecreatefrompng($kolor.'-przycisk.png');
  15.  
  16. $szerokosc_obrazka = imagesx($ob);
  17. $wysokosc_obrazka = imagesy($ob);
  18.  
  19. // przyciski musz mie 18-pikselowy margines od krawdzi
  20. $szerokosc_obrazka_bez_marginesow = $szerokosc_obrazka - (2 * 18);
  21. $wysokosc_obrazka_bez_marginesow = $wysokosc_obrazka - (2 * 18);
  22.  
  23. // Obliczenie pasujcego rozmiaru czcionki i odpowiednie jego zmniejszenie
  24. // Rozpoczcie od najwikszego rozmiaru, ktry intuicyjnie pasowaby do przyciskw
  25. $rozmiar_czcionki = 33;
  26.  
  27. // Trzeba wskaza GD2, gdzie znajduj si czcionki
  28. $nazwa_czcionki = 'ARIAL.TTF';
  29.  
  30. do
  31. {
  32. $rozmiar_czcionki--;
  33.  
  34. //obliczenie rozmiaru tekstu przy tym rozmiarze czcionki
  35. $bbox=imagettfbbox($rozmiar_czcionki, 0, $nazwa_czcionki, $tekst_przycisku);
  36.  
  37. $tekst_prawy = $bbox[2]; //prawa wsprzdna
  38. $tekst_lewy = $bbox[0]; //lewa wsprzdna
  39. $szerokosc_tekstu = $tekst_prawy - $tekst_lewy; // jaki szeroki?
  40. $wysokosc_tekstu = abs($bbox[7] - $bbox[1]); // jaki wysoki?
  41.  
  42. } while ($rozmiar_czcionki > 8 &&
  43. ($wysokosc_tekstu > $wysokosc_obrazka_bez_marginesow ||
  44. $szerokosc_tekstu > $szerokosc_obrazka_bez_marginesow)
  45. );
  46.  
  47. if ($wysokosc_tekstu>$wysokosc_obrazka_bez_marginesow ||
  48. $szerokosc_tekstu>$szerokosc_obrazka_bez_marginesow)
  49. {
  50. // aden moliwy do odczytania rozmiar czcionki nie pasuje
  51. echo 'Wprowadzony tekst nie pasuje do przycisku.<br />';
  52. }
  53. else
  54. {
  55. // odnaleziono pasujcy rozmiar czcionki
  56. // teraz naley obliczy jego wsprzdne
  57.  
  58. $tekst_x = $szerokosc_obrazka/2.0 - $szerokosc_tekstu/2.0;
  59. $tekst_y = $wysokosc_obrazka/2.0 - $wysokosc_tekstu/2.0;
  60.  
  61. if ($tekst_lewy < 0)
  62. $tekst_x += abs($tekst_lewy); //Dodanie wspczynnika do lewej pozycji
  63.  
  64. $nad_linia_tekstu=abs($bbox[7]); // jak wysoko nad podstaw?
  65. $tekst_y += $nad_linia_tekstu; //dodanie wspczynnika podstawy
  66.  
  67. $tekst_y -= 2; // wspczynnik dostosowania do ksztatu szablonu
  68.  
  69. $bialy = imagecolorallocate($ob, 255, 255, 255);
  70.  
  71. imagettftext($ob, $rozmiar_czcionki, 0, $tekst_x, $tekst_y, $bialy, $nazwa_czcionki,
  72. $tekst_przycisku);
  73.  
  74. Header('Content_type: image.png');
  75. imagepng($ob);
  76. }
  77.  
  78. imagedestroy($ob);
  79. ?>
_Borys_
  1. header("content-type: image/png");
bigos1995-95
dzieki wink.gif sprawdziem, nie ma rnicy czy . czy /
ale ma byc content-type z minusem a nie z kresk na dole _

I wielkie dzieki jeszcze raz wink.gif
To jest wersja lo-fi gwnej zawartoci. Aby zobaczy pen wersj z wiksz zawartoci, obrazkami i formatowaniem prosz kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.