Mam kod, z książki o php.
<?php // sprawdzenie, czy dostępne są odpowiednie dane zmiennych // zmienne to tekst_przycisku oraz kolor $tekst_przycisku = 'TEKST'; $kolor = 'czerwony'; // utworzenie obrazka o prawidłowym tle oraz sprawdzenie wielkości $ob = ImageCreateFromPng($kolor.'-przycisk.png'); if (!$ob) { exit; } $szerokosc_obrazka = ImageSX($ob); $wysokosc_obrazka = ImageSY($ob); // przyciski muszą mieć 18-pikselowy margines od krawędzi $szerokosc_obrazka_bez_marginesow = $szerokosc_obrazka - (2 * 18); $wysokosc_obrazka_bez_marginesow = $wysokosc_obrazka - (2 * 18); // Obliczenie pasującego rozmiaru czcionki i odpowiednie jego zmniejszenie // Rozpoczęcie od największego rozmiaru, który intuicyjnie pasowałby do przycisków $rozmiar_czcionki = 33; // Trzeba wskazać GD2, gdzie znajdują się czcionki $nazwa_czcionki = 'Arial.ttf'; do { $rozmiar_czcionki--; //obliczenie rozmiaru tekstu przy tym rozmiarze czcionki $bbox=ImageTTFBbox($rozmiar_czcionki, 0, $nazwa_czcionki, $tekst_przycisku); $tekst_prawy = $bbox[2]; //prawa współrzędna $tekst_lewy = $bbox[0]; //lewa współrzędna $szerokosc_tekstu = $tekst_prawy - $tekst_lewy; // jaki szeroki? } while($rozmiar_czcionki > 8 && ($wysokosc_tekstu > $wysokosc_obrazka_bez_marginesow || $szerokosc_tekstu > $szerokosc_obrazka_bez_marginesow) ); if($wysokosc_tekstu>$wysokosc_obrazka_bez_marginesow || $szerokosc_tekstu>$szerokosc_obrazka_bez_marginesow) { // żaden możliwy do odczytania rozmiar czcionki nie pasuje } else { // odnaleziono pasujący rozmiar czcionki // teraz należy obliczyć jego współrzędne $tekst_x=$szerokosc_obrazka/2.0 - $szerokosc_tekstu/2.0; $tekst_y=$wysokosc_obrazka/2.0 - $wysokosc_tekstu/2.0; if ($tekst_lewy < 0) $tekst_y+=$nad_linia_tekstu; //dodanie współczynnika podstawy $tekst_y-=2; // współczynnik dostosowania do kształtu szablonu $bialy=ImageColorAllocate($ob, 255, 255, 255); ImageTTFText($ob, $rozmiar_czcionki, 0, $tekst_x, $tekst_y, $bialy, $nazwa_czcionki, $tekst_przycisku); ImagePNG($ob); } ImageDestroy($ob); ?>
Troszku zmieniony bo był błąd invalid font name.
Zwraca zamiast obrazka, dwie strony jakiegoś gówna
Kod
wf<^Ż×űłeßš{w~{Î=Ż{W03Ô0a|بaڍQ8ëQŁpÖŁFáŹ5Ăëľ5ÄĚ5łčX!BčĆLú&
DDDJ)ĽEÉ8>0 ó)DD)Ľ2
HD,&