Skočiť na obsah Skočiť na menu

Inet.sk - internetový denník

internetový denník

Práca s obrázkami v PHP: GD Graphics Library

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.



Pôvodná diskusia k článku

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

Je Vaša doména voľná?

Platená reklama

Textová reklama

Ako začať podnikať na internete? Nechajte si poradiť. Aký má byť obsah kvalitne www stránky? Tvorba www stránok, Tvorba webu, Redakčný systém - CMS, Prieskumy o nakupovaní na internete, Pôžičky
Kompletné informácie o Kika Banská Bystrica | Čo takto navštíviť Viedeň? | Zaujímavé informácie priamo od zdroja

Newsletter


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


Bilancia skrývky Fotokniha Fotografie Osobnosti.sk