Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tworzenie grafiki - wyskakują same znaczki, Tworzenie grafiki - wyskakują same znaczki
bigos1995-95
post 11.05.2013, 13:31:50
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 18.05.2012

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


Witam, mam kod z ksiazki PHP i MySQL wydanie 4. Kod ma za zadanie stworzyć przycisk a wyświetla jakieś same znaczki:

Kod
‰PNG  IHDR–Cńk)MIDATxœí]MŒ\Օ>÷ý×˙Ř´ÝnÇ“8 `ˆ, (;E,P˘$B(̌Ăb2Źf@ʆEźˆ˘ ag‘%Š’E‚)›ˆDDÁ€&‘ (ą6&ŘîvŰĐÝőóŢť÷œ3‹óŢí×ŐUĺśM—ŠĄ>—Ú÷Użzuű}uţĎ˝Ľ˜Će8×zc\-ĆŽ<ĆŽ<ĆŽ<źŤ|˝xĆH˘č*"d6´!y¤š-ŞÖđŃ˙‹Ö:Ú ÷ڐ™1ÍfłŐé`ť|Ţ]< ~,ÚRN5ĽšRĂÂ"füqŚEyíZ[~{F ÂgćFˆ(öHJ5Ľš ňj“ŤuóŸE‡ŐðZ­ŠFő}żK{SˆˆNguu55čźř;÷­× *eď‡HYkŠ5%)ĽúÂX7Âzš$"DN k#RAÚđJgf̑#ŮŮZš\ŠT˘(’xĂu]ČíbĐžˆ1Žc Ÿü›óćëěů ‘    ˜ ršbœRœPŹ)љ[eE'0AĺÉëFA˙ɘdq7d-ZÍpjČóč˝÷đŮg—{ĚaśšAńn '…Ěœ$I˘5śŰîńW”#ňÇ&“?Œcj%'œjN5d´ ‚<$cîÝ;ýĽj‡îňڧÝJE/OϞéœ8qćžžŹëÜöŇŤvüˇť?űaO gA)'Ł”“QÏŹ5§†4’1†=^|Qß}÷Ę]wŮčŔŇŮMĄda’$1 |ň ľp†}RÄ,ú3ŃŘI¨ÝÁVŒ„ÍZ($ d͐çKˇžŔë~xîżţ[ykH¸k.Ü5§\WZW|ŮŤyí (ĽŔyŽRr¨0"h$m™Ŕ85›ú÷ż_šůfŸšČŸRJÔi)ÔZ§Z›¸ă™ 1bćżÄ)ścjśącœ°6¤Mžš!‰_×ů˘[ÉbăŢ{w?ţDĎ_uŢz›}ĹWžš×öŔýŠ”bĽ@8 r߄‘Ŕ     ȌĚ&čŻM^zŠyĎ=^ť-¸Ś˘Kť)”\šĹó'áÜ{ä8€šÄž†’„â”ZӊąsŞYl$ŠM]ţŃUR.™˙ˇ~żJćçŻę­ˇjÚ   ”Í^)R t"!düfdFĽ°Ů¤żüeĺÖ[="ɆëÝ"""f>=Ďí6„%&fc8јڜhęÄŘI(N8ŃlŹü­ża˘źżŻžúęťßýnçíˇ9IźFŰí!Oć2Ŕ 6°.•Îĺ!ϸnş´”\ź(ĺ‰7Ëb)4ˆŘnĂŇ"€6,Y˜4ĺDs’R˘)ŐŹME łđC†[ŻŰńŠ'ŸŒß~[Ćziiř“š<ä´u×0”bfb&"˨q]:wŽ}ńbP*•ٍ\. ‹DÄĚŢúË2"­ŇÄŐHŹÄ em2łg ˜,/ ÔGy NŘqó™čúëUÄo˝uá7ż9˙ÜsŹ?Tçeó9çDĘ­’żÉ¸DĽ¸Ů„×_oĎĚÄqœŚŠPŘ[ ‰‰PkżŐbDbČeł\6!fĽá˙ÍpčÍ7?ůʍ7v˙Úu?ńďl˙ĘWŠ‚[=x°zđŕu=tâßHϞݚÉn=sœ9,)9­yi)NÓŹänŒx-DÔÝÁFDDHŇQ‘цYP/Ě1_CxšPAđÉŁGgz¨ČŸEißžżüĽ7==ü‰őD&‚š,fJU)Ă'‰Ő˘ÂuKĄ€˜YbARů™X*‚Đ/~ř¨â†ďâóŸpB03ł÷ȑĄÍg0Šü­    `ˆLšJ˙寇"IşŠŤ)ўdŽEň˛Řa”ZŤwÜ1u˙ýö[­3Ď<łrěXiůłX~á…Ó-ŞTÖX-bQ—JśJpŁ#ŮÓć˙ĐU¤ŢśmvŹŞĘôÜš­ŸÎfąîNsď*‚ĺ˛çšŠbŠo]óÄȑčMNÚń`’>:Ž3R„nSR›<Î9+¨FŽÁËŽŹ\ë)ä S|Q°Ž)3+Ľş,â[˜]DqáÚ0b’h.\°ă`vvŔ™ÁŽ[?Í˘čI aOô¤0o­’Œ ăŠ3‰ş@a8˜ÂżÖbůB‚Ôƅý^Ő[ €‘ňÖl"mŻŔ!9}ڎŁ>éAŃw˝†°äŮ:Ô‹}’*˝(T €(g‘™ČűŮŐŽnmńаü§?ŮńĚĂƒëö;sűמ6” BąřCJI×EVŹ($ž×ú¸•‚*ĽĽ”ădŐ%yŤ˘:íňS?ÂX~áÎW˘„ssŰ|°çiűîŤŢzëçŐYM*őĚDÄv @Üg)| $]Oy˝—q­Ň Ł’(5ďż˙Áţ`?ńčűîë:§|ŕŔž§žę´zĄŤROĹö'é‰rœ˘!ł˛Ř[ ĄT6×Í@œ°–.qdD †ŹX8JFńÝ#G(MeěÖjŸúčĐgГ?!HD¤”bĎćâşížśĐu]…\­rœpb¤ńe“A6†F+źxďé§fąăS§Î<óĚĐćSĚ    ňˆ4ł÷܎GŠÝygtĂ *’S§.<˙üâĎ~ĆC7„rC­ţ4Ě)sB” &D    QœŠ"ev§š};äŰÓą…"ŞžçšSSéíˇ;żţ59BK•Ł8JŠüIgč\ž<0ZßłźüϧűŽXťÜŤ]lÁ¨?fM”0w;D1˘D câÉÉvlWšžËbŹzŽ8Îężč;ĆçϓçuéLYŐ菡¨*żČV߈‘DW#LQ…2§D    Q1&Jrs(Ëb\ćĽ={8ŠÂ (ncbuiwą)“Bß=Ďßś-ší6硿5Žť.SgłŮzšěxLÝ`ŹK[çŃŠÁcŽs-*&Đ0#€2&™œ\ž­ťnEBĄDaąz^‘ç5x@˝öŸ:…QDśüaÓJ)ă’(毀r-*†Pô§&2Č DŽëžýÔ§T–ٍRŠ”J%Ůú˘¨K{HĄă8Ba)˘mۖ|Đýяpu}ż%€ZŕwÉů“Łâľkő‡< ÔĚ&—źDyéNsöî]Ţž}:*•Jš\ -‹=Š]‡/Ű*APVŞuÇm­˝Ÿü„VVĐóÖşü‡ľ”ţ˙ě]’O?ĺŠTb>“G&í™Ůe^ءďüž}0ŹVŤľZ­Z­Úei})„b\ADQTiˇ[ˇÜ˛úŐŻ†?ý)ŻŹ˜ Ȟްś°ús9B}ß[Š˘!̲ šÂ4ă‡ĚŽ1.Ŕâ7.ěÝ[ ĂZľ:11QŻ×…BŤKmhїBß÷Ă0,•ËĽ8ŽśŰ›nşřĺ/ű/˝äŸ8Z×%)eâ é“Ö…âݰR˜šŁD`…}˘NŁą87ˇ<;[)•őúääd…"…})IиŽçyQcŞŐj’$Iš&\œ…ăÇË/żě.,pšÇ!Ľ27G:‘‰`Ź]×c­ ˜苶0ŤyĚ­ZíýëŽ;77Çĺr- őúôôôÔÔTŁŃ e'ŻŽőzH!ˆ9ô}_X”ŐPĆ•Ś8;;ëž



tworz_przycisk.php
  1. <?php
  2. // sprawdzenie, czy dostępne 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 niemożliwe - formularz wypełniony niepoprawnie';
  11. }
  12.  
  13. // utworzenie obrazka o prawidłowym tle oraz sprawdzenie wielkości
  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 krawędzi
  20. $szerokosc_obrazka_bez_marginesow = $szerokosc_obrazka - (2 * 18);
  21. $wysokosc_obrazka_bez_marginesow = $wysokosc_obrazka - (2 * 18);
  22.  
  23. // Obliczenie pasującego rozmiaru czcionki i odpowiednie jego zmniejszenie
  24. // Rozpoczęcie od największego rozmiaru, który intuicyjnie pasowałby do przycisków
  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 współrzędna
  38. $tekst_lewy = $bbox[0]; //lewa współrzędna
  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 możliwy do odczytania rozmiar czcionki nie pasuje
  51. echo 'Wprowadzony tekst nie pasuje do przycisku.<br />';
  52. }
  53. else
  54. {
  55. // odnaleziono pasujący rozmiar czcionki
  56. // teraz należy obliczyć jego współrzędne
  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 współczynnika do lewej pozycji
  63.  
  64. $nad_linia_tekstu=abs($bbox[7]); // jak wysoko nad podstawą?
  65. $tekst_y += $nad_linia_tekstu; //dodanie współczynnika podstawy
  66.  
  67. $tekst_y -= 2; // współczynnik dostosowania do kształtu 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. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
_Borys_
post 11.05.2013, 14:51:27
Post #2





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

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


  1. header("content-type: image/png");
Go to the top of the page
+Quote Post
bigos1995-95
post 11.05.2013, 16:02:55
Post #3





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 18.05.2012

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


dzieki wink.gif sprawdziłem, nie ma różnicy czy . czy /
ale ma byc content-type z minusem a nie z kreską na dole _

I wielkie dzieki jeszcze raz wink.gif
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:03