SP | PHP návod - Obrázkový status (Obrsík)

Technická podpora pro naše hostované weby
Message
Autor
Uživatelský avatar
Cernokneznik
Příspěvky: 855
Věk: 27
Registrován: 17 črc 2012, 20:23
Reputation: 1
Bydliště: Praha
Kontaktovat uživatele:

SP | PHP návod - Obrázkový status (Obrsík)

#1 Příspěvekod Cernokneznik » 17 srp 2013, 22:58

Obrázek
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
Obrázek Obrázek
Tvorbu těchto obrázků jsem nahrál, video je k dispozici zde: http://youtu.be/espHmSxuApM

č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.
Obrázek Obrázek Obrázek
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
Obrázek
Obrázek


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
Naposledy upravil(a) Cernokneznik dne 20 kvě 2015, 19:45, celkem upraveno 8 x.
Elkia.club - A gaming club with it's own vanilla survival Minecraft server!
Obrázek apply here

Uživatelský avatar
zdenda204
Příspěvky: 3617
Věk: 36
Registrován: 23 kvě 2012, 21:38
Reputation: 0

Re: SP | PHP návod - Obrázkový status.

#2 Příspěvekod zdenda204 » 17 srp 2013, 23:30

Poslušně hlásím, že na localu to nefunguje :( (GD2 knihovnu jsem povolil)
Hodí to takovej ten errorovej obrázke :(

//Edit: Šoupl jsem to na endoru a tam to jde, jen to nechce vypisovat text :( Takže stejný problém jako když jsem si to spatlal sám :D
//Edit: Je to plně funkční :)
Naposledy upravil(a) zdenda204 dne 18 srp 2013, 14:22, celkem upraveno 2 x.
Přijímám zakázky na skripty/pluginy v PHP/Javě za malý poplatky! A kup mi sušenku :) Obrázek Obrázek
⇨Projekt Market⇦

Uživatelský avatar
Welton123
Příspěvky: 2388
Registrován: 08 úno 2012, 17:54
Reputation: 0
Kontaktovat uživatele:

Re: SP | PHP návod - Obrázkový status (Obrsík)

#3 Příspěvekod Welton123 » 17 srp 2013, 23:49

Mně to zase jde, ale jen, pokud tam nepřidám text :D :(



Edit: Super, už vše funguje :)
Naposledy upravil(a) Welton123 dne 18 srp 2013, 23:26, celkem upraveno 2 x.
CZ/SK TOP Databáze MineCraft Serverů ►KLIK◄
Chceš i Ty mít měnící se podpis? ►KLIK◄

Uživatelský avatar
Mysteria
Příspěvky: 9122
Registrován: 26 pro 2009, 15:40
Reputation: 7
Bydliště: Česká republika
Kontaktovat uživatele:

Re: SP | PHP návod - Obrázkový status (Obrsík)

#4 Příspěvekod Mysteria » 17 srp 2013, 23:50

Jediná nevýhoda GD knihovny je ta, že není objektová, ale jinak se s ní dají vytvářet pěkné věci. Jenom pro někoho, kdyby někdo pracoval s Nette, tak Nette má nad GD knihovnou vystavěné vlastní objektové API Nette\Image, který umí všechno co GD knihovna, jenom se s tím mnohem líp manipuluje díky objektovému stylu.

EDIT: Btw možná by bylo fajn, jim k tomu tvému kódu přihodit i to písmo a to pozadí ne? Takhle když to někdo zkopíruje, tak mu to hodí error. ;)

Uživatelský avatar
Cernokneznik
Příspěvky: 855
Věk: 27
Registrován: 17 črc 2012, 20:23
Reputation: 1
Bydliště: Praha
Kontaktovat uživatele:

Re: SP | PHP návod - Obrázkový status (Obrsík)

#5 Příspěvekod Cernokneznik » 18 srp 2013, 00:23

Aktualizováno, už tu není kód, ale rovnou jen zipový soubor s všema potřebnejma věcma... Vy dva mi sem hoďte vaše erory či screeny toho jak to nefunguje, rád pomůžu :)
Mysty, vážně si nedokážu představit, jak tohle psát oběktově :O
Elkia.club - A gaming club with it's own vanilla survival Minecraft server!
Obrázek apply here

Uživatelský avatar
KotasMan
Příspěvky: 56
Věk: 26
Registrován: 13 dub 2013, 19:51
Reputation: 0

Re: SP | PHP návod - Obrázkový status (Obrsík)

#6 Příspěvekod KotasMan » 03 lis 2013, 19:48

Chcel by som upozorniť na toto:
http://crew.majn-kraft.eu/podpis/

Údajným "majiteľom" je MM333 :)
Obrázek

Uživatelský avatar
Cernokneznik
Příspěvky: 855
Věk: 27
Registrován: 17 črc 2012, 20:23
Reputation: 1
Bydliště: Praha
Kontaktovat uživatele:

Re: SP | PHP návod - Obrázkový status (Obrsík)

#7 Příspěvekod Cernokneznik » 04 lis 2013, 10:08

Veřejně jsem vystavil kód i návod, a dokonce i video kde dělám ten obrázek, tak nevidím důvod, proč by se někdo nemohl inspirovat. ;)
A jsem alespoň rád, že to tady někomu pomohlo.
Elkia.club - A gaming club with it's own vanilla survival Minecraft server!
Obrázek apply here

Uživatelský avatar
KotasMan
Příspěvky: 56
Věk: 26
Registrován: 13 dub 2013, 19:51
Reputation: 0

Re: SP | PHP návod - Obrázkový status (Obrsík)

#8 Příspěvekod KotasMan » 06 lis 2013, 19:52

Okay však ako chceš ;) Len mne by vadili kebyže niekto skopíruje môj kód a iba prepíše copyright ;)
Obrázek


Zpět na „Web hosting“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti