   Imagini interactive in php
   ~~~~~~~~~~~~~~~~~~~~~~~~~~


  Una dintre facilitatzile php-ului o constituie lucrul cu imagini. Putem
crea imagini "runtime" (ele NU exista ca fishiere, ci php-ul le va trimite
sub forma unui flux de date care se va interpreta ca imagine). De asemenea
putem face diverse operatzii de modificare asupra unor imagini existente.

  Pentru lucrul cu imagini (de fapt pentru suportul de functzii necesar)
este nevoie ca instalarea standard a php-ului sa fie modificata, pentru
ca, in caz contrar, functziile NU vor fi recunoscute.

  Acest lucru se face prin:

* in directorul Windows vetzi gasi un fishier php.ini
  Acesta trebuie modificat in sensul urmator:

      - se parcurge fishierul pina cind se intilneshte o lista de
        specificatzii de forma 

   ;extension= ... .dll   (in secztiunea "Windows Extensions")

   shi se "de"comenteaza (se scoate ; din fatza) liniei care contzine

extension=php_gd2.dll


* in directorul in care atzi instalat php-ul trebuie copiat acest fishier
   (php_gd2.dll) pe care fie il luatzi din subdirectorul ext al arhivei
     php-5.0.3-Win32.zip (pe care am pus-o in cd-ul de instalare al php-ului)
     fie il datzi jos de pe net, de la lectziile php
============================================================
   Pentru a testa daca modificarile efectuate sunt corecte, creatzi php-ul din
apl01.php. 
   Daca da eroarea:
             Fatal error: Call to undefined function imagecreatetruecolor() in 
             c:\.........\apl01.php on line 3

inseamna ca instalarea NU e corecta.
===============================================================================

   Functzii specifice imaginilor
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


*   imagecreatetruecolor(width,height);  -> aloca memorie pentru crearea unei imagini 
       truecolor (pe 32 de bitzi) de dimensiunile specificate.

 -> functzia va intoarce o variabila prin care ne vom referi la imaginea respectiva
     coordonatele vor fi : pe ox -> intre 0 shi width-1 iar pe oy intre 0 shi height-1


*   imagecolorallocate(imagine,red,green,blue);

 -> functzia va crea o culoare prin componentele de red, green, blue (regula de formare = la
   fel ca la html, doar ca aceste componente sunt scrise in baza 10 !, adica in loc sa fie
   de la 0 la ff sunt de la 0 la 255)

de ex, pt. galbenul cel mai intens:
              $galben=imagecolorallocate($imagine,255,255,0)

      functzia intoarce o variabila prin care vom identifica culoarea

*  imageline(imagine,x0,y0,x1,y1,culoare); 
   
 -> deseneaza in imagine o linie cu culoarea specificata, de la coordonatele x0,y0 la x1,y1.

   Coordonatele sunt dispuse conform unui sistem de coordonate carteziene x0y, cu axa 0y indreptata
   in jos, originea (0,0) fiind in coltzul stinga-sus al imaginii:

    0 +--------------------> x
      |
      |
      |
      |
      | 
      |
      |
    y v

*   imagesetpixel(imagine,x,y,culoare);

 -> deseneaza pixelul la coord. x,y cu culoarea specif.

*   imagerectangle(imagine,x0,y0,x1,y1,culoare)
*   imagefilledrectangle(imagine,x0,y0,x1,y1,culoare)

 -> deseneaza un dreptunghi gol/plin avind 2 coltzuri diagonal opuse la coord. x0,y0 shi x1,y1

*   imagesetthickness(imagine,grosime)
 
 -> seteaza grosimea implicita pentru liniile care se vor desena in imagine

*   imageellipse(imagine,cx,cy,latzime,inaltzime,culoare);
  
 -> deseneaza o elipsa cu centrul in cx,cy, de latzimea shi inaltzimea (diametrul ox, oy) specificate

*   	
 
 -> produc output-ul imaginii din variabila $image in browser, in format png

*   header("Content-type: image/gif");
    imagegif($image);
  
 -> analog, pt. formatul gif (!! gif nu suporta decit 256 de culori !!)

*   header("Content-type: image/jpeg");
    imagejpeg($image, "", 50);

 -> analog pt. formatul jpeg. 
     Ultimul parametru reprezinta factorul de compresie (calitatea) = un coeficient 
   cuprins intre 0 shi 100. 
     Sunt recomandabile valori de la 70 la 100

  Putem lasa pur shi simplu
     imagejpeg($image); -> ishi pune singur un factor de compresie 75


Vezi apl02.php
=========================
  Apl03.php -> vom face o imagine de 1024 x 768 in care vom genera palete de culori, facind combinatzii
de r,g,b

=========================
  apl04.php -> se va cere un intreg=numarul de laturi
 Se va face un png de 600x400 in care desenam un poligon regulat cu nr. de laturi specificate,
   cu centrul in mijloc shi de raza 170.

