Pri tvorení profesionálnych webových stránok už dávno nestačí upravovať obrázky pomocou CSS, alebo nebodaj (X)HTML. Ako ideálne riešenie sa naskytuje PHP s použitím GD Graphics Library.
Úvod
PHP nie je obmedzené len na prácu s HTML výstupmi. Často sa používa aj na tvorenie a manipuláciu s obrázkami v rôznych formátoch: od gif, cez png, jpg, wbmp, až ku xpm. Takisto dokáže vytvoriť výstup priamo do browsera.
Aby Vám všetko fungovalo, ako má, budete potrebovať GD knižnicu.
Požiadavky
Všetko, čo potrebujete, je znalosť PHP funkcií a inštalácia GD knižnice. Formáty obrázkov, s ktorými chcete pracovať, závisia od verzie knižnice, ktorú máte, a ostatých knižníc, ktoré sa dajú doinštalovať.
Verzia staršia, ako gd-1.6, podporuje GIF, ale nepodporuje PNG.
Verzia novšia, ako gd-1.6, ale zároveň staršia, ako gd-2.0.28, podporuje PNG, ale GIF nie.
A napokon v staršej verzii, ako gd-2.0.28, bola obnovená aj práca s GIF.
Inštalácia
Pre sprístupnenie práce s GD, treba nakonfigurovať PHP na --with-gd[=DIR], kde DIR je priečinok miesta inštalácie GD. Pre používanie pribalenej GD knižnice, ktorá sa prvýkrát defaultne vyskytla v PHP verzii 4.3.0, použite na konfiguráciu jednoducho --with-gd.
Vo Windowse potom už len vložíme GD2 DLL php_gd2.dll do php.ini. GD1 DLL php_gd.dll bolo odstránené v PHP verzii 4.3.2. Treba však mať na pamäti, že používanie truecolor funkcií, ako napr. imagecreatetruecolor(), vyžaduje GD2 knižnicu.
Pre zneprístupnenie GD, použite --without-gd.
Dôležité funkcie
Imagecreatefromjpeg() vytvorí GD instanciu pre knižnicu z existujúceho JPEG obrázku
Imagecreatefrompng() vytvorí GD instanciu pre knižnicu z existujúceho PNG obrázku
Imagecreatefromgif() vytvorí GD instanciu pre knižnicu z existujúceho GIF obrázku
Imagesx()zistí šírku obrázku
Imagesy() zistí výšku obrázku
Imagecreatetruecolor() vytvorí nový truecolor obrázok
Imagecolorallocate() namieša farbu
Imagestring() vypíše reťazec horizontálne
Imagestringup() vypíše reťazec vertikálne
Imagejpeg() vráti JPEG obrázok do browsera, alebo súboru
Imagegif() vráti GIF obrázok do browsera, alebo súboru
Imagepng() vráti PNG obrázok do browsera, alebo súboru
imagedestroy() zničí obrázok
Práci s obrázkami chcem venovať viacero častí, takže neskôr si ukážeme aj nejaké príklady, popri ktorých sa budem snažiť trošku opísať použité funkcie.
S GD knižnicou sa dajú robiť naozaj zaujímavé veci, tak dúfam, že aj Vy si ju obľúbite.
Uz zase ides vysvetlovat PHP!? To snad nie! :D
03. 07. 2007 peterr 85.135.236.xxx
myslim, ze nemas dovod namietat - dobry uvodny informativny clanok, tesim sa na dalsie casti. drzim autorovi palce.
inac, imho "ideálne riešenie" by bolo svg - ale to by to muselo fungovat vsade poriadne :-(
04. 07. 2007 yderf 87.197.139.xxx
"Imagecreatefromjpeg() vytvorí nový JPEG obrázok z GD alebo URL" - "Image create FROM JPEG" nevytvorí JPEG obrázok z GD alebo URL. Táto funkcia vytvorí GD instanciu obrázka pre spracovanie touto knižnicou z už existujúceho JPEG obrázka.
Oprav si to prosím, aby sa ľudia zbytočne neplietli. PS, odporúčam články po sebe čítať a kriticky hľadať nezmysly ;)
04. 07. 2007 Tomáš Gluchman 85.248.106.xxx
Ano, ospravedlnujem sa, mate pravdu. Cital som si to po sebe, ale bol to preklad z php.net, takze mozno az tak "nevynikli" moje prekladatelske schopnosti :) uz som to opravil
04. 07. 2007 Jakub Žilinčan 85.216.179.xxx
Zdravim. Pekny clanok, ale nikde neviem najst presny popis k instalacii GD Graphics Library. Na stranke su len nejake zdrojove subory zrejme pre javu ale nikde sa neviem docitat kde co a jako aby som to nakapcal na php... :( za rozumne odpovede dakujem. ty co chcu zamachrovat a napisat sprostot typu uc sa, citaj, a pod. kaslite nato...
31. 07. 2007 eS 87.197.130.xxx
Chcem sa spytat ci neviete ako vlozit do obrazka text aj s diakritikou
imagestring($obraz, 10, 10, 10, "človeče", $farba);
Diakritika tu proste nejde..
26. 10. 2007 Palo 217.12.49.xxx
Copyright © 2002 - 2012 Inet.sk, s. r. o.Všetky práva vyhradenéNeprešlo jazykovou úpravouISSN 1336-1899
Využívame kvalitný webhosting za rozumnú cenu od Webhosting Inet.sk