Pe langa crearea de cod de tip text (HTML, XML, ...), PHP poate fi folosit si pentru crearea si manipularea de imagini cu diferite formate (GIF, PNG, JPEG, WBMP si XPM).
PHP are implemetat cateva functii pentru lucru cu informatii legate de imagini, cum ar fi lungimea, latimea sau extensia imaginii. Pentru crearea de noi imagini sau manipularea celor existente este necesar sa aveti instalat in PHP o librarii GD cu functii pentru imagini. Pentru mai multe informatii despre cerinte si instalare librarie GD, vizitati GD library.
- Daca folositi WampServer sau Xampp, acestea au deja incluse librarii GD.
Puteti afla informatii despre libraria GD instalata folosind functia gd_info(), aceasta returneaza o matrice cu informatii despre libraria GD inclusa.

Exemplu:
<?php
var_dump(gd_info());
?>

1. Crearea imaginilor

Pentru crearea unei imagini cu PHP sunt esentiali urmatorii pasi:

Cam asta e, pe scurt, partea teoretica, acum sa trecem la practica, voi prezenta pas cu pas un script PHP simplu care va afisa in browser o imagine PNG formata dintr-un dreptunghi cu fundal albastru si in interior un text.
Scriptul este urmatorul:
<?php
$text = 'Textul din imagine';

// setare dimensiuni suprafetei de baza
$height = 40;
$width = 170;
// definirea imaginii
$im = imagecreate($width, $height);

// setare culori
$fundal = imagecolorallocate($im, 10, 10, 250);
$text_color = imagecolorallocate($im, 255, 255, 255);

// finalizarea imaginii
imagefill($im, 0, 0, $fundal);
imagestring($im, 4, 10, 15, $text, $text_color);

// trimiterea datelor de iesire
header('Content-type: image/png');
imagepng($im);

// curatarea memoriei
imagedestroy($im);
?>
- Acest script va afisa urmatorul rezultat
Exemplu imagine cu PHP
Sa studiem acest script
        - Pentru inceput am setat variabila "$text" ce contine textul care va fi adaugat in imagine, si variabilele "$height" si "$width" care reprezinta dimensiunile imaginii.
        - In continuare avem "$im = imagecreate($width, $height)", functia imagecreate() returneaza un identificator de imagine ce creaza suprafata de baza a imaginii, prelund ca argumente dimensiunile acesteia (in pixeli).         - Urmatorul pas este definirea culorii pentru fundal si pentru text, pentru aceasta se foloseste functia imagecolorallocate(), aceasta returneaza un identificator de culoare care va fi folosit pentru accesarea culorii si preia 4 argumente: primul argument este identificatorul de imagine creat cu "imagecreate()" (in script este in variabila "$im"), urmatoarele trei argumente reprezinta valorile RGB (Red, Green, Blue) pentru stabilirea culorii.
        - Pentru adaugarea culorii de fundal se foloseste functia imagefill(), care preia 4 argumente (in script avem "imagefill($im, 0, 0, $fundal);"), argumentele sunt:         - Pentru adaugarea textului in cadrul imaginii se foloseste functia imagestring(), aceasta preia 6 argumente:         - Urmatotul pas este trimiterea datelor de iesire pentru afisarea in browser.         - In final s-a folosit functia imagedestroy() (care foloseste ca argument identificatorul de imagine) pentru eliberarea resurselor de memorie folosite la crearea imaginii.

2. Utilizarea imaginilor create cu PHP

Deoarece un header poate fi trimis numai o data pentru o pagina, si asta este singura cale de a spune browser-ului ca sunt trimise date de imagine, poate deveni mai dificil cand se doreste crearea si afisarea mai multor imagini cu PHP.
In acest caz:

a) Puteti folosi scriptul pentru a salva imaginea pe server (dupa cum a fost explicat mai sus) si apoi folositi etichete <img> pentru afisarea imaginii
- Exemplu:

<?php
$text = 'Textul din imagine';

// setare dimensiuni
$height = 50;
$width = 170;
$im = imagecreate($width, $height);

// setare culori
$fundal = imagecolorallocate($im, 10, 10, 250);
$text_color = imagecolorallocate($im, 255, 255, 255);

// finalizarea imaginii
imagestring($im, 4, 10, 15, $text, $text_color);

// salvarea imaginii pe server
imagepng($im, "img.png");

// curatarea memoriei
imagedestroy($im);
?>

<img src="img.png" alt="Afisare 1" />
--- <img src="img.png" alt="Afisare 2" />
- Acest script va afisa urmatorul rezultat
Afisare 1 --- Afisare 2

b) O alta metoda este scrierea intr-un fisier php extern a scriptului care genereaza si afiseaza imaginea, apoi apelati scriptul PHP in atributul src, ca in exemplul urmator:
<img src="script_img.php" alt="Afisare 1" />
--- <img src="script_img.php" alt="Afisare 2" />
- Unde "script_img.php" este fisierul PHP care genereaza si afiseaza imaginea

- In urmatoarea lectie, Functii pentru lucrul cu imagini, sunt prezentate mai multe functii utile in lucrul cu imagini generate de PHP.

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce tag HTML5 este indicat sa contina meniul cu link-uri de navigare in site?
<section> <nav> <article>
<nav><ul>
 <li><a href="http://coursesweb.net/css/" title="CSS Course">CSS Course</a></li>
 <li><a href="http://www.marplo.net/jocuri/" title="Flash Games">Flash Games</a></li>
</ul></nav>
Ce proprietate CSS muta elementrul in dreapta sau stanga de la locul unde e?
text-align clear float
.some_class {
  width: 30%;
  float: left;
}
Clic pe metoda obiectului Math care rotunjeste numarul x descrescator la cel mai apropiat intreg.
Math.ceil(x) Math.abs(x) Math.floor(x)
var num = 12.34567;
num = Math.floor(num);
alert(num);       // 12
Indicati functia PHP care returneaza numarul de caractere dintr-un sir.
mb_strlen() count() stristr()
$str = "sir cu caractere utf-8 åèö";
$nrchr = mb_strlen($str);
echo $nrchr;        // 29
Clic pe raspunsul potrivit la intrebarea: "When it happened?".
On the 7th of July 1996 It is a quarter to 5. Nice weather.
When it happened? On the 8th of August 2001.
- Cand s-a intamplat? Pe 8 August 2001.
Indicati raspunsul potrivit la intrebarea: "¿Cuando sucedió?".
Hace buen tiempo. En el 8 de Agosto de 2001 Son las tres menos cuarto.
¿Cuando sucedió? En el 8 de Agosto de 2001.
- Cand s-a intamplat? Pe 8 August 2001.
Creare imagini cu PHP

Last accessed pages

  1. Coduri pt culori (1681)
  2. Zoo Amigos (943)
  3. Butterfly Kyodai (5680)
  4. Bubbles3 (8791)
  5. The Rise Of Atlantis (1521)

Popular pages this month

  1. Bubbles3 (3366)
  2. Gramatica limbii engleze - Prezentare Generala (3170)
  3. Prezentul simplu si continuu - Present Tense Simple and Continuous (2266)
  4. Butterfly Kyodai (2168)
  5. Trecutul simplu si continuu - Past Tense Simple and Continuous (1918)