Jump to content
ZeroCold

Tutorial PHP - GD Library

Recommended Posts

Posted (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:

<?php
header ("Content-type: image/jpeg");
$img = ImageCreate (200,100);
$fond = ImageColorAllocate ($img,0,200,0);
ImageJPEG ($img, '', 100);
?>

swzbqb.jpg

header - declara tipul imaginii

Content-type poate avea valorile:

image/jpeg - pentru JPEG

image/gif - pentru GIF

image/png - pentru PNG

Cu ImageCreate sunt declarate dimensiunile imaginii

Culoarea 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:

<?php
header ("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);
?>

29vdlqp.jpg

Culoarea fontului este declarata tot cu ImageColorAllocate, similar culorii fondului

ImageString 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:

<?php
header ("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);
?>

2yy1ml0.jpg

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:

<?php
header ("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);
?>

2nuokk8.jpg

Cream o elipsa in centrul imaginii (100,50), avand latimea 180 si inaltimea 80:

<?php
header ("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);
?>

eamo45.jpg

Cream un trapez:

<?php
header ("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);
?>

fo2dc3.jpg

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).

<?php
header("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);
?>

29kx9hv.jpg

_______

:-BD

#Credite: Catalin Drogoreanu

Edited by ZeroCold

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...