Generowanie sygnaturek w PHP z użyciem GD
Pewnie nie raz chcielibyście pochwalić się znajomym swoimi osiągnięciami w jakiejś grze przez przeglądarkę. Wasza grafika chwały mogłoby wyglądać np. tak:
Takie efektowne odznaczenie można zrobić przy użyciu kodu PHP. Oczywiście może ono wyglądać totalnie inaczej, ale to już zależy od waszej fantazji. Poniżej możecie zobaczyć kod, który generuje podobne sygnaturki:
$id = 1; // Tutaj podajecie ID dla którego chcecie wygenerować obrazek
$data = date("Y-m-d");
$poziom = $db -> EXECUTE("SELECT id, user, rasa, klasa, level, avatar FROM players WHERE id=".$id." LIMIT 1");
$file = 'adres/avatara/'.$poziom -> fields['avatar'].'';
$ext = explode(".",$poziom -> fields['avatar']); // u mnie avatar ma postać ID.ext więc takie rozwiązanie zadziała w innym wypadku trzeba użyć innej metody ^^
switch($ext[1])
{
case 'png':
$avek = imagecreatefrompng($file);
break;
case 'gif':
$avek = imagecreatefromgif($file);
break;
case 'jpeg':
$avek = imagecreatefromjpeg($file);
break;
case 'jpg':
$avek = imagecreatefromjpeg($file);
break;
default:
continue;
}
$avek_width = imagesx($avek); // sprawdzamy wymiary avatara
$avek_height = imagesy($avek);
$img = imagecreatetruecolor(343,250); // tworzymy grafikę główną
$color1 = imagecolorallocate($img, 244, 250, 251);
$color2 = imagecolorallocate($img, 255, 0, 30);
$poziom -> fields['user'] = explode(" ",$poziom -> fields['user']); // wycinam pierwszą część imienia
imagettftext($img, 18, 0, 10, 30, $color1, 'fonts/Maszyna.ttf', iconv("ISO-8859-2", "UTF-8",'Kroniki Fallathanu')); // nanoszę na obrazek nazwę gry
imagecopy ($img, $avek, 13, 40, 0,0, $avek_width, $avek_height); // nanoszę na obrazek avatar
imagettftext($img, 12, 0, 170, 55, $color2, 'fonts/Maszyna.ttf', $poziom -> fields['user'][0].' - '.$poziom -> fields['id'].''); // nanoszę na obrazek ID
imagettftext($img, 8, 0, 170, 80, $color1, 'fonts/Maszyna.ttf', iconv("ISO-8859-2", "UTF-8",'Rasa: '.$poziom -> fields['rasa'])); // nanoszę na obrazek rasę
imagettftext($img, 8, 0, 170, 100, $color1, 'fonts/Maszyna.ttf', iconv("ISO-8859-2", "UTF-8",'Klasa: '.$poziom -> fields['klasa'])); // nanoszę na obrazek klasę
imagettftext($img, 8, 0, 170, 120, $color1, 'fonts/Maszyna.ttf', iconv("ISO-8859-2", "UTF-8",'Poziom: '.$poziom -> fields['level'])); // nanoszę na obrazek poziom
// Na opis koniecznie 15 znaków linijka
imagettftext($img, 8, 0, 170, 160, $color1, 'fonts/Maszyna.ttf', iconv("ISO-8859-2", "UTF-8",'Najlepszy w grze'));
imagettftext($img, 8, 0, 170, 180, $color1, 'fonts/Maszyna.ttf', iconv("ISO-8859-2", "UTF-8",'xxxxxxx'));
imagettftext($img, 8, 0, 170, 200, $color1, 'fonts/Maszyna.ttf', iconv("ISO-8859-2", "UTF-8",'(xxxxxx)'));
imagettftext($img, 8, 0, 12, 240, $color1, 'fonts/Maszyna.ttf', iconv("ISO-8859-2", "UTF-8",'Oficjalne odznaczenie'));
imagettftext($img, 8, 0, 222, 240, $color1, 'fonts/Maszyna.ttf', iconv("ISO-8859-2", "UTF-8",'Data: '.$data));
imagepng($img, '/folder/zapisu/grafiki/'.$id.'.png'); // zapisujemy plik na serwerze
print '';
$poziom -> Close();
W ten oto prosty sposób możemy stworzyć sygnaturki, odznaczenia dla graczy. Czcionkę użytą w przykładzie ściągniecie z załącznika.
Jeśli chcemy użyć wszystkich możliwości biblioteki GD zapraszam do zapoznania się z tym artykułem:
http://wortal.php.pl/wortal/artykuly/php/biblioteki/generowanie_grafiki_w_php