Oktató php (a fórum)

Óraszámát 12 - GD - munka képekkel.

PHP funkciók nem korlátozódnak létrehozása HTML # „i. PHP lehet használni, hogy hozzon létre és manipulálni a képeket különböző formátumokban, beleértve a GIF, PNG, JPG, wbmp és xpm. Továbbá a PHP kimeneti képfolyamként közvetlenül a böngészőben. Ahhoz, hogy a munka, meg kell PHP összeállítani GD grafikus könyvtár. GD és a PHP is függhet más könyvtárak, attól függően, amellyel képformátumok fog dolgozni.







A fejlett EXIF ​​akkor dolgozza fel az információkat tárolni JPEG és TIFF képfejlécek. Segítségével hozzáférhet a meta tagek generált a digitális fényképezőgép. A munka EXIF ​​kiterjesztése GD nem szükséges.

Telepítését és konfigurálását a könyvtár megtalálható a hivatalos dokumentációt. Legvalószínűbb, hogy nem kell, mert minden már régen kimutatták.

Ezek a funkciók sok, és ezek mind fontosak. Írja le minden nem leszek, annál jobb a hivatalos dokumentumok nem teszem ezt. De nézd meg ezeket a példákat vagyunk nagyon tud, és most ez fog tenni.

Az első állomás a imagecreatetruecolor.
Dokumentáció szerint hozzon létre egy új valódi színét image.Ya meg róla, hogy mindig úgy gondoltam, hogy a színek nincsenek jelen nem lehet, és én úgy gondolom, még mindig =) Igaz szín valójában a neve, kiszerelése és tárolása képek, képes megjeleníteni nagy színek száma, hangok és színek RGB formátumban. Egy szó, emlékeztetni arra, hogy az RGB értékét Piros Zöld Kék egy módja annak, hogy kifejezze minden szín használatával három alapszín.

forrás imagecreatetruecolor (int $ szélességét. int $ magasság)
A függvény két integer érveket. A hossza és szélessége az új képet. Ha kitalálta csavar le után megnyitott dokumentumok, látták, hogy az eredmény ennek a funkciónak a saját példája volt egy fekete doboz. Az a tény, hogy a doboz fekete volt, akkor nem pánik nem kellene.
Ha azt szeretnénk, hogy tér különböző színű, meg kell próbálni a mi a következő függvény után még egy szó erről.

Eredmény függvény a forrás adatok típusát.
Ez azt jelenti, hogy minél többet dolgozik közvetlenül valamit szem előtt.

Akkor adjuk ezt az azonosítót más funkciót kép colorallocate
A függvény generál színformátumból abban a formában, amelyben a kép használnak a további munka az azonos színű a kép.
Az első hívás ez a funkció beállítja a háttérképet.

int ImageColorAllocate (resource $ képet. int $ red. int $ zöld. int $ kék)
A három paraméter ismert. Számok 0-255 kifejező RGB színrendszer.
Fekete szükségünk háromszor 0, három 255 fehér.
Az első paraméter a függvény $ forrás kép ugyanazt az azonosítót, hogy megkaptuk korábban imagecreatetruecolor. Ez a paraméter van szükség annak érdekében, hogy megtekinthesse a színek megfelelnek a követelményeknek a képformátum.

És igen, hozzon létre egy kép paletta elő, itt az ideje, hogy elindítsa a kreatív folyamat. image line
Mivel elvileg a neve - a függvény vonalat rajzol a kép.
Menj be részletesen arról, hogy ez megtörténik, nem fogunk. Csak húz egy vonalat.

// Létrehozunk egy 100 * 100 kép
$ Img = imagecreatetruecolor (100. 100);

// kiosztani néhány szín
$ Red = ImageColorAllocate ($ img 255. 0. 0.);
$ Zöld = ImageColorAllocate ($ img 0. 255. 0.);
$ Blue = ImageColorAllocate ($ img 0. 0. 255);

// felhívni néhány sor
imageline ($ img 40. 30. 40. 40. $ zöld.);
imageline ($ img 50. 30. 50. 40. $ zöld.);
imageline ($ img 45. 38. 45. 39. $ zöld.);

imageline ($ img 37. 45. 53. 45. $ zöld.);
imageline ($ img 37. 43. 37. 45. $ zöld.);
imageline ($ img 53. 43. 53. 45. $ zöld.);

// kimeneti kép a böngészőben
header ( "Content-type: image / png");






ImagePng ($ img);

// szabad memória
imagedestroy ($ img);
?>

Mintegy kimenő képet a böngésző és az elszámolási, később beszélünk, és most lássuk, mi működik imageline.

bool imageline (resource $ képet. int $ x1. int $ y1. int $ x2. int $ y2. int $ szín)
Azaz, akkor hiszem magad, vagy meglesni a dokumentációban. Ott.
Azt akarom, hogy nem kell félni, hogy valami baj van. Lásd a dokumentációt és előre.
Tovább prompt ismét - ha minden kötél szakad, akkor mindig kérdezni a fórumon =)

Ez a funkció az index a képet a memóriában létrehozott imagecreatetruecolor és színes azonosító létre imageColorAllocate.Nichego nehéz? Hasonlóképpen, futás a legtöbb funkció dolgozni izobrazheniyami.Prinimaet egérmutatót a kép, a szín és néhány saját konkrét érveket.

Itt van idő gyakorolni feladatokat. És akkor nézzük meg néhány kulcsfontosságú funkciók képekkel dolgozik a példák, hogy megadja a bizalmat, hogy velük együtt dolgozni =)

És most, leegyszerűsítve és oroszul:
Vegyük az eredeti kép resource $ src_image. kivágott belőle téglalap bal felső sarokban egy ponton int $ src_x. int $ src_y és a magassága és szélessége int $ src_w. int $ src_h. Ez egyszerű?
Most ezt a téglalapot a képen zsugorodik, nyúlik, zsugorodó, bővülő, hogy annak új hosszúsága és szélessége megfelel int $ dst_w. int $ dst_h.
Ezt követően az új téglalap beékelődik egy új képet a ponton int $ dst_x. int $ dst_y.
Lesz lehetősége van arra, hogy megpróbálja ezt a csodát akcióban egy kicsit közelebb a befejezéshez.

ImageCreateFromGif
Ez a funkció vagy hasonló akkor használja, ha gyakran képekkel dolgozik. Funkció egyszerűen egy gereblye. Adjon meg egy fájlnevet, ez ad egy mutatót a kép memóriában dolgozni.
Felhívjuk figyelmét, hogy ez a createfromgif. Vannak más formátumok és számukra más funkciókat. Például ImageCreateFromPng vagy imagecreatefromjpeg.

Amikor a böngésző megmutatja, mi a kép, ez valójában kéréseket a szerver ugyanazon firkákat, majd azokat a képernyőn látható kép.
Tehát nem csak menteni a firka fájlt, hanem azonnal küldje el a böngészőt. Lehetővé teszi, hogy ez az egy azonos imagegif, de ezúttal nem a második paraméter.
imagegif ($ im)

És végül, az utolsó dolog, amit látott itt imagedestroy
Változó $ img mutató nem távolítják el, hanem a memóriában, amely a változó jelzi azt törli. Hasznos, ha úgy érzi a késztetést, hogy működjön együtt a képeket, a nagy felbontású, például több kép párhuzamosan és ne lépjék túl a megengedett szabad memória.

Hadd emlékeztessem önöket, hogy minden a memória mennyiségét a forgatókönyvet futásidőben automatikusan megjelent a befejezése munkáját.

Nos, ez minden, amit már elsajátították az elméleti alapját.

Fatal error: Call to undefined function.
Ez azt jelenti, hogy nincs telepítve a GD, vagy ha ez sokkal könnyebb - vannak zárva egy függvény nevét. Telepítése GD dokumentációban leírt. Denver ez az alapértelmezett beállítás az Ubuntu, akkor jöhet sudo apt-get install php5-gd, és indítsa újra a kiszolgálót.

Figyelmeztetés: imagecreatefrom .. (a.png) failed to open stream: Permission denied
minden túl egyszerű. A gomb jobbra a képre, és állítsa be a jogosultságokat, hogy olvassa el mindent.

A képernyőn megjelenik Resource id # kép helyett.
= (Már azt mondta, hogy a kimenetet a böngésző segítségével végzik, speciális funkciók az űrlap imagegif () nélkül egy második paramétert A hol kell echo $ img ;. és megjeleníti a memória tartalmát nem azok, hanem csak egyszerűen egy üzenet, hogy ez a mutató.

Figyelmeztetés. (): Mellékelt érv nem érvényes kép forrás
Várható mutató és az a tény, hogy teljesítette a húr, vagy valami mást. És ha biztos vagy benne, hogy peredaosh mutató, de még mindig ez a hiba, majd megáll nyitva. Tévedsz, és ez jobb, hogy ellenőrizze. Menteni egy csomó idegek =)

# 65533; PNG? # 65533; # 65533; # 65533; IHDR # 65.533; # 65533; # 65.533 ;? # 65.533; # 65533; # 65533; ??? # 65.533; # 65533; # 65533; # 65533; # 65533; H6 # 65.533; # 65.533 ;? PIDAT (# 65.533 ; # 65533; # 65533; # 65533; J A # 65.533 ;? # 65.533; Mv # 65.533; M4 # 65.533; # 65533;
Igen, miért jelenik meg bináris kép, és a böngésző nem hiszem, hogy azt a képet, és feldolgozni, mint a normál szöveg. Gyere turizmus Wellness ismét az egész leckét, és nézd a rész, amelyben küldünk Képböngésző.

Pár problémák voltak elnyelő anyag

Ismét a programozási szakaszokra
1. Nyilatkozat a probléma
2. meghatározása szükséges műveletek
3. Válogatás a megfelelő funkciókat az egyes műveletek (hogy ez miért)
4. Építése a lánc
5. Debug a visszatérés az első pont

1. Print Overlay
Persze, hogy adjunk néhány szót a kép nem veled dolgozni. Ezért próbálja pririsovat grafikus aláírást. Nyílt PEINT és nem autogramot. Történt? Kitűnő.
Most mentse el a Google két kép Pamela Anderson és pririsovyvat az ő aláírása.
(Tipp: valószínűleg hasznos tudni, hogy a képnek nevezett paraméter Alpha - megjelölő átláthatóságát biztosítja a Ctrl + F funkciók listája, amelyek dobja meg a szem, bár ez nem szükséges.).

2. Captcha
Komplex, nem fogunk csinálni, hogy egy egyszerű. Minden alkalommal, amikor úgy tűnik, véletlenszerű 4 számjegy.
Mi a trükk? Ahhoz, hogy ezt megtehessük, használt speciális font - amely letölthető innen. És miután mi lesz a kép fehér, fekete szöveget. mi vonatkozik rá és negatív szűrő a képernyőn fog arról, hogy úgy tűnik, éppen ellenkezőleg, fekete háttérrel és fehér, és mind a kép jelenik meg a képernyőn. (És mindez egy script)

3. Logo php
Ez a feladat könnyebb és hitelesség - sorsolás logo php.

A választ ezekre a kérdésekre itt található: itt




Kapcsolódó cikkek