Tutorial PHP

Data publicarii: Februarie 2006

Tutoriale » PHP » PHP - GD Library

PHP Feb 2006

PHP - GD Library

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);
ImageDestroy($img);
?>
Imagine creata cu GD Library

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);
ImageDestroy($img);
?>
Imagine creata cu GD Library

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);
ImageDestroy($img);
?>
Imagine creata cu GD Library

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);
ImageDestroy($img);
?>
Imagine creata cu GD Library

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);
ImageDestroy($img);
?>
Imagine creata cu GD Library

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);
ImageDestroy($img);
?>
Imagine creata cu GD Library

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");
$img = ImageCreateFromJpeg("fond.jpg");
$font_size="18";
$font_angle="10";
$start_x = 30;
$start_y = 60;
$text_color = ImageColorAllocate($img, 0, 0, 0);
$font="verdana.ttf";
$text="Text proba";
Imagettftext($img, $font_size, $font_angle, $start_x, $start_y, $text_color, $font, $text);
Imagejpeg($img, '', 100);
ImageDestroy($img);
?>
Imagine creata cu GD Library

Sus

Tutoriale
17 Feb 2025  9:46 AM

Copyright © 2005-2023 Termeni si conditii
 
Comentarii:
Tudor
19-03-2013
cum pot sa fac sa apara un text (data, ora si adresa Ip) pe o poza asa cum ai facut tu in ultimul exemplu. adresa este diferita pentru fiecare vizitator
Autor
20-03-2013
Modifici putin ultimul exemplu inlocuind valoarea variabilei $text
Citeste despre sintaxa pentru preluare data si ora si pentru adresa IP a vizitatorului

Sus