Mintapélda
Ahogyan azt a
Képszerkesztés című oldalon is mondtuk,
weboldalak készítésekor könnyen futhatunk bele olyan feladatba, amikor képeket szükséges
szerkesztenünk, módosítanunk. Mint fogalmaztunk, ennek egyik tipikus esete lehet, hogy
a meglévő képet kell valamilyen felirattal kiegészítenünk. Nézzünk erre néhány példát!
Képek feliratozása
Érdemes megfigyelni, hogy a
Napi látogatottság
című aloldal bal felső sarkában szereplő illusztrációs kép is éppen azt a számot
tartalmazza, amennyi az oldal napi látogatottsága. Vagyis attól függetlenül, hogy
az a kép is egy közönséges .jpg kép, mégis folyamatosan változik a tartalma - a
rajta szereplő érték minden új látogató esetén eggyel nő. Ennek ellenére ez nem
jelenti azt, hogy a szerveren, mint háttértáron minden egyes értéket tartalmazó
kép önálló fájlként el van tárolva. Ott csupán a kép alapja létezik, vagyis ez:
és a tartalmat (vagyis a feliratot) egy PHP program teszi rá:
A program forráskódja a következő:
<?
session_start();
header("Content-type: image/jpeg");
$kep = imagecreatefromjpeg("counter_empty.jpg");
$feher = imagecolorallocate($kep, 255, 255, 255);
if(!$_SESSION['latogatok_szama']) $n=1;
else $n=$_SESSION['latogatok_szama'];
$n0 = $n % 10 ;
$n1 = floor($n/ 10) % 10 ;
$n2 = floor($n/ 100) % 10 ;
$n3 = floor($n/1000) % 10 ;
imagettftext( $kep, 48,0, 222,172 , $feher, "arialbd.ttf", $n0 );
imagettftext( $kep, 48,0, 162,172 , $feher, "arialbd.ttf", $n1 );
imagettftext( $kep, 48,0, 102,172 , $feher, "arialbd.ttf", $n2 );
imagettftext( $kep, 48,0, 42,172 , $feher, "arialbd.ttf", $n3 );
imagejpeg($kep);
?>
Három megjegyzést mindenképpen érdemes lehet tennünk ahhoz, hogy a forráskód kipróbálható legyen:
1.
A forráskódban hivatkozott
arialbd.ttf fájl a feliratozáshoz használt TrueType betűkészletet
tartalmazza. Ilyen esetekben szükséges bemásolni a fájlt a forráskódot is tartalmazó mappába, hogy
biztosan kéznél legyen. A fájl eredeti helye jellemzően a
Windows Fonts mappája.
XAMPP használata esetén a
.ttf betűkészlet-fájlok elérése hibát eredményezhet. Ebben az
esetben a forráskódunkban adjuk meg az elérési utat az alábbiak szerint:
dirname(__FILE__) . "/arialbd.ttf"
Figyeljünk arra is, hogy a fájljaink
elérési útvonala - tehát a mappák nevei -
csak
alapkaraktereket tartalmazhatnak, tehát ékezetes betűket, szóközt, pontot, és egyéb oda nem
illő jeleket nem. Ellenkező esetben a webszerver nem fogja megtalálni a forrásainkat.
2.
A PHP program munkamenetindítással, illetve fejlécbeállítással kezdődik, ezért a PHP programot
nem előzheti meg a programfájlban üres sor, de még egyetlen szóköz, illetve egyéb karakter sem!
3.
Saját gépen való kipróbáláskor a forráskódban szereplő
$_SESSION['latogatok_szama'] kifejezés
értelemszerűen nem fog az Ön rendelkezésére állni. Az ezt használó értékadás során legpraktikusabban egy
konstans számmal helyettesíthetjük a kifejezést, például a
$n=1234; utasítással.
Feladat
Naptárlap készítése
Ahogyan a látogatottság számlálásnál, úgy a
Dátum- és időkezelés
című oldalon is az illusztrációs kép dinamikusan alakul az adott napi dátumhoz. A kiindulási
képet, és az eredményt az alábbi ábrán követheti nyomon:
Készítsen PHP programot, mely a kiindulási ábrából elkészíti az adott naphoz tartozó
naptárlapot, mint képet. A programot úgy valósítsa meg, hogy a képen szereplő szám
hétköznapokon sötétkék, szombatonként zöld, vasárnap és ünnepnapokon pedig piros
színnel jelenjen meg.
További kapcsolódó feladat: