Liniile de viață ale graficii în php (la fel ca metricul)

Toate pe site-ul nostru - pentru decorarea propriilor pagini. Acum încercăm să strângem materiale interesante și utile despre design și despre temele apropiate de designer, despre programarea, găzduirea și promovarea site-urilor.

Web-design - probleme legate direct de crearea site-urilor

Grafica - desen, colaj, animație

Gazduire - probleme de plasare a site-urilor dvs. în rețea

Viața pe net

Promovare, promovare, optimizare

programare

Pentru a crea și manipula imagini de tip jpeg, png, tiff, gif, aveți nevoie de biblioteca gd_library. De la PHP 4.3, această bibliotecă este încorporată. Trebuie să instalați sau să recompilați PHP cu -with-gd. Pentru utilizatorii Windows, trebuie să specificați extensia = php_gd2.dll în fișierul php.ini.







Atunci când se lucrează cu imagini ale dezvoltatorului ar putea avea nevoie de sprijin pentru fonturi și dimensiuni suplimentare - există speciale de bibliotecă extensii gd pentru a lucra cu formatele GIF, XPM, și altele, precum și pentru instalarea de fonturi suplimentare.

Luați în considerare funcțiile de bază care vă permit să creați, modificați și afișați imagini într-un browser.

Funcții pentru crearea de imagini din cele existente:

Imagecreatefromgif (), identificatorul imagecreatefrompng (), imagecreatefromjpeg () și altele asemenea, luând ca argumente URL sau pe calea fișierului de imagine este returnat care reprezintă o imagine dată.

De exemplu: $ image = imagecreatefromgif ( „cale / catre / ta / image.gif“) returnează identificatorul image.gif de imagine, prin care ulterior poate fi imaginea modiftsirovat afișată pe textul său, se combină cu alte imagini. În caz de eșec al punerii în aplicare a acestui tip de funcție returnează false, adică, verificați și procesul nu poate fi cu ușurință, ceea ce face tipul de încercare:

dacă (! $ image = @imagecreatefromgif ('cale / spre / your / image.gif'))
// codul care trebuie executat în cazul în care imaginea nu a fost deschisă
>

Funcții pentru crearea unei imagini noi:

Imagecreatetruecolor (), imagecreate () creează imagini goale, luând ca parametru lățimea și înălțimea imaginii create în pixeli. Astfel, dacă în exemplul anterior nu am putut crea un identificator pentru o imagine deja existentă, putem crea o imagine nouă.

dacă (! $ image = @imagecreatefromgif ('cale / spre / your / image.gif'))
$ image = imaginecreatetruecolor (88, 31); // dacă nu a fost creat image.gif bazat pe imagine, vom crea o nouă imagine cu o dimensiune de 88 cu 31 de pixeli
>

Funcții pentru lucrul cu culori:

Imagecolorallocate () - luând ca argument un identificator de imagine și cele trei componente ale culorii dorite (RGB: roșu, verde și albastru), determină culoarea dorită pentru această imagine.

În exemplul nostru, definiți culorile de fundal și font pentru ieșirea textului:

$ fontcolor = imagecolorallocate ($ imagine, 0, 0, 0);
$ backgroundcolor = culoarea imaginii ($ image, 255, 255, 255);

Funcțiile de umplere a imaginii cu culoarea:

Imagefill (), imagefilledrectangle (), imagefilledarch (), imagefilledellipse () și alte imagefill ... funcția luând ca argumente coordonatele forme geometrice din imagine, oferă o umplere acele părți ale culorii de imagine specificate. De exemplu, umpleți dreptunghiul cu culoarea de fundal:

imaginefill ($ imagine, 0, 0, $ fundalcolor); // aici 0, 0 sunt coordonatele colțului din stânga sus al zonei umplut.







Funcții pentru ieșirea textului:

Imagestring (), imagettftext (), imagestringup () imprimă text în diferite direcții folosind diferite fonturi.

De exemplu,
imagista ($ imagine, 5, 0, 0, 'text', $ fontcolor); // tipăriți textul cuvântului din imaginea noastră imagine cu fontul încorporat pe coordonate (punctul stânga sus) 0, 0.

În plus față de fonturile încorporate, puteți utiliza fonturile înregistrate cu funcția imageloadfont (). Funcția imagettftext () vă permite să utilizați fonturi de tip adevărat tip.

În această etapă, este posibil să aveți o problemă cu retragerea textului în limba rusă - fonturi built-in (pentru funcția imagestring () 1-5, în funcție de mărime) nu suportă alfabetul chirilic, și chiar și atunci când specificați fontul funcția imagettftext (chirilic) pot fi afișate într-o incorectă codare.

Există câteva modalități de a rezolva această problemă. Cea mai ușoară modalitate este de a converti un șir cu caractere chirilice la codarea UTF-8:
$ text = iconv ("windows-1251", "UTF-8", "textul nostru");

Adăugarea de efecte speciale:

Multe funcții gd_library vă permit să adăugați efecte speciale imaginii curente, să desenați obiecte noi pe aceasta, să alocați anumite zone și așa mai departe. Iată câteva exemple:

  • funcția imagedashedline () - trage o linie punctată;
  • funcția imageellipse () - trage o elipsă;
  • funcția imagesetbrush () - creează o pensulă;
  • funcția imagefilter () - aplică un anumit filtru imaginii, de exemplu, inversează culorile imaginii, convertește imaginea într-un mod alb-negru, modifică luminozitatea, contrastul imaginii, adaugă o fațetă și așa mai departe.

Eliberarea imaginii primite către utilizator:

Funcții precum imagegif (), imagepng (), imagejpeg () ieșesc rezultatul într-un browser sau fișier. Nu uitați că antetul Content-Type pentru astfel de scripturi trebuie redefinit:

antet ("Tip de conținut: imagine / gif");
imagegif ($ imagine);

Să terminăm exemplul nostru la concluzia logică. Să presupunem că scopul nostru a fost crearea unei așa-numite captcha, adică a unei imagini care de fiecare dată când o pagină este accesată, va fi afișată o nouă secvență de caractere, de exemplu un număr de patru cifre.


// încercați să creați o captură din imagine cu un fundal "zgomotos":
dacă (! $ image = @imagecreatefromgif ("cale / spre / your / image.gif"))
// dacă nu a fost creat image.gif bazat pe imagine, vom crea o nouă imagine cu o dimensiune de 88 cu 31 de pixeli
$ image = imaginecreatetruecolor (88, 31);
// defini culoarea de fundal:
$ backgroundcolor = culoarea imaginii ($ image, 255, 255, 255);
// completați imaginea rezultată cu culoarea selectată:
imaginefill ($ imagine, 0, 0, $ fundalcolor);
>
// definiți culoarea fontului:
$ fontcolor = imagecolorallocate ($ imagine, 0, 0, 0);
// creați un număr aleatoriu din patru cifre:
$ text = mt_rand (1000, 9999);
// tipăriți numărul în imagine:
imagingring ($ imagine, 5, 0, 0, "text", $ fontcolor);
// și returnează rezultatul utilizatorului:
antet ("Tip de conținut: imagine / gif");
imagegif ($ imagine);

Acest script poate fi întotdeauna complicat, de exemplu, prin adăugarea unui unghi de înclinare pentru inscripție, o umbră din figuri, aplicarea unor filtre asupra imaginii rezultate.

Lucrul cu fotografiile:

Extensia exif. vă permite să lucrați cu informațiile stocate în anteturile fotografiilor digitale. Pentru a lucra cu funcțiile acestei extensii, nu este nevoie de alte biblioteci suplimentare, PHP pur și simplu trebuie să fie instalat cu suportul --enable-exif. Pentru utilizatorii Windows: extensiile = php_mbstring.dll și extensia = php_exif.dll trebuie să fie specificate în fișierul php.ini, iar mbstring trebuie să fie specificat mai întâi.

Funcția exif_imagetype (), luând ca argument calea spre fișier, vă permite să determinați formatul imaginii. Acest lucru este necesar pentru a nu aplica alte funcții ale exif la imaginile formatelor neacceptate. Formatul de imagine pentru a lucra mai departe cu aceste funcții trebuie să fie gif, jpeg, png, swf, PSD, bmp, tiff_II, tiff_MM, JPC, jp2, JPX, JB2, SWC, IFF, Wbmp, XBM.

Funcția exif_read_data () citește anteturile exif din fișierele jpeg și tiff.

De exemplu:

Liniile de viață ale graficii în php (la fel ca metricul)

// verificați dacă formatul acestei imagini este jpeg
dacă (exif_imagetype ("image.jpeg") == IMAGETYPE_JPEG)
// citește anteturile
$ imagedata = date exif_read_data ("image.jpeg", 0, true);
dacă ($ imagedata === false)
ecou "Nu există anteturi"; // dacă nu există anteturi
altfel
// tipăriți matricea de anteturi pe secțiuni
foreach ($ imagedata ca secțiune $ key => $)
foreach (secțiunea $ ca $ name => valoare $)
echo "$ cheie. $ nume. valoare $";
>
>
>
altfel
ecou "format nesuportat";

Acest articol descrie posibilitățile de a utiliza doar câteva funcții, cum ar fi gd_library și exif-extension. Informații mai detaliate despre toate funcțiile disponibile pentru lucrul cu imagini în PHP pot fi găsite în paginile site-ului oficial, în secțiunea Image Functions și Exif Functions.







Articole similare

Trimiteți-le prietenilor: