Rozhodl jsem se, že se pokusím napsat návod, ohledně vytvoření obrázkového statusu, nebo prostě obrázku, kde bude vypsán text, který máte definovaný proměnnou..
Nechci zde ukazovat, jak vykreslit různé objekty čistě v php, ale chci ukázat, že to jde vlastně hrozně jednoduše, bez nějáké velké potřeby umět celou GD knihovnu...
Pro tento návod si vezmeme jako ambici vytvoření statusu hráče.
Připrvate se
Jako první bych vás chtěl upozornit, že zde se jedná o programování! Následující návod vám nejspíš nepomůže, pokud máte webové stránky u Webnoode, nebo třeba na Blog.cz! Dále, tento návod je určený lidem, kteří již mají jisté zkušenosti s tímto programovacím jazykem...
Budete potřebovat:
[*] Doménu, nebo veřejnou IP adresu
[*] Znalost grafického programu (Photoshop, MSDraw)
[*] Vlastní soubor písma ve formátu .ttf
[*] Základy fyziky a matematiky (Souřadnice X a Y)
[*] Hosting s PHP osahující knihovnu GD
- Zajímavý soupis webhostingů jsem našel zde, pravděpodobně však bude zastaralý.
[*] Svačinu
Pokud máte hosting, ale nevíte, jestli váš hosting podporuje knihovnu GD, můžete to buď zkusit, a nebo vytvořit soubor pojmenovaný například phptest.php obsahující následující kód:
Kód: Vybrat vše
<?php phpinfo() ?>
a tento soubor dát kamkoliv na web. Po načtení souboru v prohlížeči by se vám mělo zobrazit podrobné info o nastavení vašeho php, mezitím by měla být také informace o GD knihovně, viz. Screen1
-------------------------------------------
Prvně si vytyčíme naše cíle...
Od našeho statusu budeme chtít:
[*] Avatar vybraného hráče
[*] Jméno hráče
[*] Hráčovo motto
Vzhůru do práce!
Začneme tedy s tím, že si otevřeme nějáký obrázkový editor. Někdo rád photoshop, někdo Gimp, já zas mám rád vektorovou grafiku a Inkscape. Jelikož knihovna GD je omezená, neumí různé efekty přechody, či správně pracovat s alfakanálem, je toto asi nejlepší řešení.
V tomto editoru si vytvoříme základní pozadí statusu. Zde si umístíme třeba vaše logo, a podobně.
Já po necelých 15ti minutách práce mám dvě jednoduché pozadí
Spoiler: zobrazit
červené místo značí pozici pro avatar, vy ho do svého obrázku ale dávat nemusíte.
Jdeme na kód!
Kód zpravidla bývá jednoduchý.
Začneme s tím, že si otevřeme nějáký výkoný textový editor, například Notepad++, Webmatrix 3, V mém případě to je PHP Storm, a začneme s definováním proměnných.
Do proměnné $obr načteme obrázek, který bude na pozadí, a zároveň určíme šířku a výšku generovaného obrázku, ta bude stejná, jako výška a šířka obrázku na pozadí.
$obr = imagecreatefrompng("./Status_MC.png"); //Pozadí minecraftu
Dále definujeme jméno hráče. Řekněme, že jméno bude získano z parametru v URL adrese, tudíž
$jmeno = $_GET['jmeno'], to samé opakuje i pro proměnnou $moto.
Url adresa tedy bude vypadat následovně: www.vaše.doména.cz/vášsoubor.php?jmeno=<Jméno>&moto=<Hráčovo motto>
Avatar získáme externí aplikací nazvanou Minotar, která automaticky uřízne hlavu z vašeho minecraft skinu.



Aby jsme jí dostaly do proměnné, použijeme $avatar = imagecreatefrompng("https://minotar.net/avatar/". $jmeno ."/80.png");
Dále musíme definovat barvu vašeho textu. Barvy jsou klasicky RGBA, takže
$cerna = imagecolorallocatealpha ( $obr , 0 , 0 , 0 , 0 ); je černá, a
$bila = imagecolorallocatealpha ( $obr , 255 , 255 , 255 , 0 ); je bílá. můžete použít jakoukoliv jinou kombinaci.
Nakonec přidáme poslední část, kterou by mělo být písmo. Písmo by mělo být ve formátu.ttf
Můžete je zíkat z souborů vašeho windows, nebo na stránkách, jako jsou http://cs.fonts2u.com/' Písmo dejte do stejného adresáře jako PHP soubor.
$font = "./vasepísmo.ttf";
Teď už by jsme měly definované základní proměnné, vrhneme se na pozicování a samotnou generaci obrázku.
Aby jsme prohlížeči dali najevo, že soubor který právě ukazuje je vážně obrázek, modifikujeme informaci v hlavičce.
header('Content-Type: image/png');.
Pak už použijeme funkce na vložení textu a avataru.
imagecopy($obr, $avatar, <X>, <Y>, 0, 0, imagesx($avatar), imagesy($avatar));
imagettftext($obr, <Velikost písma>, <Náklon>, <X>, <Y>, <Barva>, $font, $jmeno);
imagettftext($obr, <Velikost písma>, <Náklon>, <X>, <Y>, <Barva>, $font, $moto);
Potom použijeme funkci na vytvoření obrázku imagepng($obr);.
a na konec souboru dopište imagedestroy($obr); imagedestroy($avatar); pro vyčištění paměti. (Obrázek se po refreshy změní).
To by mělo být vše!
po správném napozicování by vám mohlo vzniknout něco podobého
Spoiler: zobrazit
Mnou použité soubory spolu s kodem můžete nelézt [url=http://q.naul.eu/Pit/dl/scripts/obrsík.zip]zde[/url].
Pokud vám tento návod pomohl k vytvoření vlastního statusu, neváhejte sem hodit odkaz k vašemu obrázku!
Poslední aktualizace: 18.8.2013