ZeroCold Posted May 29, 2011 Report Posted May 29, 2011 (edited) Functiile GD sunt folosite pentru crearea imaginilor. Verificati folosind phpinfo(), ca serverul de gazduire suporta aceste functii, inainte de a le utiliza.Pentru a insera in paginile web o imagine creata cu functiile din php folositi eticheta img.<img src="imagine.php" alt="Imagine creata cu GD Library">In urmatorul exemplu vom genera o imagine in format JPEG, cu dimensiunile 200px x 100px, fond verde:<?phpheader ("Content-type: image/jpeg");$img = ImageCreate (200,100);$fond = ImageColorAllocate ($img,0,200,0);ImageJPEG ($img, '', 100);?>header - declara tipul imaginiiContent-type poate avea valorile:image/jpeg - pentru JPEGimage/gif - pentru GIFimage/png - pentru PNGCu ImageCreate sunt declarate dimensiunile imaginiiCuloarea fondului imaginii este declarata in ImageColorAllocate, prin cele 3 culori de baza R-G-B, in format zecimal (0-255)ImageJPEG - afiseaza imaginea in browser (pentru GIF se foloseste ImageGIF, iar pentru PNG ImagePNG). Calitatea imaginii generate va fi "best quality" (100).Adaugam exemplului anterior textul "Proba text", cu caractere albe:<?phpheader ("Content-type: image/jpeg");$img = ImageCreate (200,100);$fond = ImageColorAllocate ($img,0,200,0);$text = ImageColorAllocate ($img,255,255,255);ImageString ($img,5,10,10,"Proba text",$text);ImageJPEG ($img, '', 100);?>Culoarea fontului este declarata tot cu ImageColorAllocate, similar culorii fonduluiImageString contine 3 valori numerice si textul continut de imagine. Prima este marimea fontului, urmatoarele 2 sunt distantele in pixeli (coordonatele pe X si pe Y) fata de coltul stanga sus, stabilind pozitia textului in interiorul imaginii.Cream o linie din punctul (10,90) in punctul (190,90). Referinta coordonatelor este coltul stanga sus:<?phpheader ("Content-type: image/jpeg");$img = ImageCreate (200,100);$fond = ImageColorAllocate ($img,0,200,0);$col = ImageColorAllocate ($img,255,255,255);ImageLine ($img,10,90,190,90,$col);ImageJPEG ($img, '', 100);?>Cu ImageLine cream linia. Cele 4 valori numerice continute reprezinta coordonatele x si y pentru punctul de inceput si de sfarsit al liniei, iar ultima este declarata culoarea.Completam exemplul anterior cu inca 2 linii pentru a desena un triunghi:<?phpheader ("Content-type: image/jpeg");$img = ImageCreate (200,100);$fond = ImageColorAllocate ($img,0,200,0);$col = ImageColorAllocate ($img,255,255,255);ImageLine ($img,10,90,190,90,$col);ImageLine ($img,10,90,100,10,$col);ImageLine ($img,100,10,190,90,$col);ImageJPEG ($img, '', 100);?>Cream o elipsa in centrul imaginii (100,50), avand latimea 180 si inaltimea 80:<?phpheader ("Content-type: image/jpeg");$img = ImageCreate (200,100);$fond = ImageColorAllocate ($img,0,200,0);$col = ImageColorAllocate ($img,255,255,255);ImageEllipse ($img,100,50,180,80,$col);ImageJPEG ($img, '', 100);?>Cream un trapez:<?phpheader ("Content-type: image/jpeg");$img = ImageCreate (200,100);$fond = ImageColorAllocate ($img,0,200,0);$col = ImageColorAllocate ($img,255,255,255);ImagePolygon ($img,array(60,10,140,10,190,90,10,90),4,$col);ImageJPEG ($img, '', 100);?>ImagePolygon contine o matrice (care indica coordonatele pentru fiecare colt in parte) si numarul de colturi.Vom genera o imagine care va avea ca fundal un fisier JPG (fond.jpg), peste care aplicam textul "Text proba", de culoarea neagra (0,0,0), folosind fontul "verdana.ttf", marime 18. Textul va fi amplasat, fata de coltul stanga sus, la 30px pe orizontala si 40px pe verticala, si va avea o inclinare de 10 grade. Calitatea imaginii generate va fi "best quality" (100).<?phpheader("Content-Type: image/jpeg");$im = ImageCreateFromJpeg("fond.jpg");$text="Text proba";$black = ImageColorAllocate($im, 0, 0, 0);$start_x = 30;$start_y = 60;Imagettftext($im, 18, 10, $start_x, $start_y, $black, 'verdana.ttf', $text);Imagejpeg($im, '', 100);ImageDestroy($im);?>_______#Credite: Catalin Drogoreanu Edited May 29, 2011 by ZeroCold Quote