Rss Feed
Tweeter button
Facebook button
Technorati button
Reddit button
Myspace button
Linkedin button
Webonews button
Delicious button
Digg button
Flickr button
Stumbleupon button
Newsvine button
Youtube button
RSS
 

Generowanie sygnaturek w PHP z użyciem GD

20 mar

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 '<img src="http://adres/obrazka/'.$id.'.png" alt="" />'; 
$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

Maszyna.ttf
Maszyna.ttf
Maszyna.ttf
43.9 KiB
0 Downloads
Details...
 
 

Tags: , , , ,

Zobacz także:

Leave a Reply

You must be logged in to post a comment.

 
This site employs the Wavatars plugin by Shamus Young.