PHP – dinamično generiranje tekst slike – font image generator
Moja naloga je bila, da kreiram ali poiščem skripto, ki glede na podan tekst generira sliko z izbrano pisavo saj naročnik želi točno določeno pisavo, ki ni standardna. Torej princip delovanja je, da preko URL-ja pokličemo PHP skripto s parametri kot so tekst, velikost pisave, ozadje slike, barva pisave, izbrana pisava in po možnosti še padding.
Samo pisanje bi vzelo preveč časa, sploh glede na podani rok do katerega je treba spletno stran končati, zato sem se odločil malce poiskati na internetnu za podobno zadevo. Med vsemi kandidati se mi je zdel skupek skript imenovam PHPFontImageGenerator2 še najboljša izbira med vsemi:
- PHPFontImageGenerator2
- PHP Image generator
- Gd / FreeType text label generator
- Building an Image Generator Class with PHP 5
Podpira vse osnovne parametre kot so velikost pisave, barva črk, ozadje, celotna velikost objekta oz. slike ter veliko število dodatnih parametrov preko Javascript exec. Več o tem lahko preberete na njihovi strani z dokumentacijo.
Zadeva sicer potrebuje nekaj poprakov za odstranitev E_NOTICE ter E_STRICT napak (pri meni tudi E_WARNING zaradi napačne poti do font-ov), vendar mi sama koda ni delala težav (koda je dokaj pregledna) zato sem hitro popravil zgoraj omenjene težave. Bom kasneje objavil moje popravke, če bo kdo rabil.
Sama uporaba je zelo preprosta, naprimer:
-
<img src="file.drawtext2.php?text='Testiram'&size=16&color=0xFFFFFF&font=Nas_font.otf" alt="testna slika" />
Če pa želiko dostopati do skripte preko drugega URL-ja potem pa uporabimo require_once na tisti skripti, ki jo pokličemo preko URL-ja:
-
require_once('file.drawtext2.php');
Delodajalec: Pangaea.si
Edino kar pogrešam je CSS letter-spacing. Če kdo pozna boljšo skripto naj prosim pove. Hvala.
Podobni članki:
- Dinamično kreiranje / Upravljanje slik
- Najboljša pisava za razvijalce – font – typography
- Magento: Kako zaščiti fotografije oz slike izdelkov
- Rezanje teksta po koncu besede – php funkcija – substr – cut text – UTF-8
- Wordpress 3 – kako dodati Lytebox oz animiran ogled slike
- PHP – Virtualne pod-domene – virtual subdomains
- Zagon skripte direktno preko PHP-ja – ukazne vrstice
- Pretvorba PHP MySQL aplikacije v PHP MS SQL aplikacijo (apache, php, mdb2, mysql => iis, php, mdb2, mssql)
- PHP – izdelava galerije – preprosta skripta za prikazovanje slik
- Kako ohraniti pregledno strukturo CSS dokumenta



May 17th, 2008 ob 2:43 pm
Zgoraj popravi "latter-spacing" v "letter spacing". Vem, motijo me detajli
May 17th, 2008 ob 2:48 pm
Pravilno, da poročate, je zaželjeno, ampak kle se ne strinjam čist, ker letter-spacing je CSS atribut in sem ga zato hotel enako napisat kot ga zapišem v CSS.
May 17th, 2008 ob 5:25 pm
Ne zastopim te ravno.
http://www.w3schools.com/css/pr_text_letter-spacing.asp
Atribut je letter-spacing, sem šel pogledat da ne bom brezveze napisal. Očitno pa nekaj ne razumem v tvojem odgovoru, zato če bi lahko bolj obrazložil..
May 17th, 2008 ob 5:28 pm
Se oproščam, sem mislil da te moti - vmes med besedama, ampak sem videl potem da sem a namesto e napisal. Hvala, sem popravil.
May 17th, 2008 ob 8:52 pm
Kaj ni lažje naložit font in iz image stringom zapisat tekst na neko sliko, po moje vse skupaj iz get spremenljivkami ne bi vzelo več kot 10 vrstic.
May 17th, 2008 ob 9:01 pm
Sam mi rabimo več kot to funkcionalnost, naprimer align teksta, potem podporo new line itd, itd, zato sem iskal že narejeno skripto.
May 17th, 2008 ob 9:12 pm
Kaj pa hitrost, če ste že testirali kaj ?
Ker očitno to kar dinamično vlečete in ni nekega cache efekta.
May 17th, 2008 ob 9:14 pm
To pa nismo testiral, ker ne bo ne kako veliko prometa, sicer se pa lahko cache tudi enostavne implementira ...