Eszköztár
137 Kezdőlap - Webszerkesztés - PHP - Képmódosítás
ujdomainek.hu

Képmódosítás

Feliratozás, átszínezés

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:

előző oldal random oldal következő oldal


2024-04-19 20:57:49 Admin Köszönöm, ha Ön lesz az első, aki megírja ide véleményét, észrevételét, kérdését ezzel a lappal kapcsolatban.




Új hozzászólás:
E-mail cím:


Erre a címre küldjük ki a hozzászólás jóvá- hagyásához szükséges linket. Az e-mail címet sehol nem tesszük közzé.

Név:


Ez a név fog megjelenni az Ön hozzászólásai mellett.

Mennyi tizenhét + négy?
Számjegyekkel írja be!



Ez a robotok beírása elleni védelem miatt szükséges ellenőrzés.


© infojegyzet.hu, 2023. március