93 Kezdőlap - Webszerkesztés - PHP - Képszerkesztés

Képszerkesztés

Méretezés, vízjelezés, feliratozás

Mintapélda

Weboldalak készítésekor, üzemeltetésekor számtalanszor botlunk olyan problémába, hogy meglévő képeket szükséges szerkesztenünk, módosítanunk. Ilyen eset lehet például az, amikor
  1. egy felhsználó által feltöltött túlméretes képet kell lekicsinyíteni,
  2. egy felhsználó által feltöltött képet szeretnénk vízjellel ellátni,
  3. egy meglévő képet kell valamilyen felirattal kiegészíteni.
A folytatásban azt fogjuk áttekinteni, hogy miként van lehetőségünk egy PHP programmal - tehát üzemeltetői beavatkozás nélkül, automatizáltan - megvalósítanunk ezen feladatokat.
Előljáróban annyit érdemes megjegyezni, hogy az ehhez használható függvényeket az alábbi PHP Manual oldal foglalja össze:
Képek átméretezése

A képek átméretezése valójában egy kép, vagy képrészlet másolásán keresztül valósul meg: a kiindulási képről a kívánt képrészletet (de leggyakrabban a teljes képet) át kell másolni egy célkép (leggyakrabban egy, az eredetitől eltérő méretű üres kép) meghatározott területére, az átméretezés lehetőségével. Ezt a lehetőséget a leghatékonyabban az függvény biztosítja számunkra, melynek deklarációja:
imagecopyresampled ( resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_w, int $dst_h, int $src_w, int $src_h ) : bool
A deklarációban szereplő bemeneti paraméterek jelentését a következő ábra szemlélteti

ahol a $src_image, és a $dst_image a memóriában létrehozott (kép)változókat jelenti.


Képek vízjelezése (logózása)

A vízjelezés (logózás) technikailag teljesen ugyanazt a programozási eszköztárat igényli, mint a képméretezés, azzal a különbséggel, hogy míg az átméretezésnél az eredeti képet másoljuk egy új képre, addig a vízjelezésnél a kívánt logót fogjuk az eredeti képre másolni. A program paramétereit tehát ennek megfelelően kell átírni.


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 tatalmazza, 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);
    ?>
	

A forráskódban hivatkozott arialbd.ttf fájl a feliratozáshoz használt TrueType betűkészletet tartalmazza. Ilyen esetekben érdemes 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.

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.


CAPTCHA kép készítése

Készítsen webes felületet, mely megjelenít egy az alábbiakhoz hasonló CAPTCHA képet, illetve be is kéri ellenőrzésént annak szöveges tartalmát, mmajd válaszul megadja, hogy helyesen lett-e e tartalom begépelve, avagy nem.
A kép tartalma értelemszerűen minden oldalbetöltés (oldalfrissítés) eredményeként más és más legyen.



2019-09-17 12:46:34 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 tizenegy + kilenc?
Számjegyekkel írja be!



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


© infojegyzet.hu, 2019. február