Php és GD - munka grafika - php

Ez a cikk ismerteti, hogy miként működik a PHP c grafikus könyvtár GD - felfedezés, kijelző és elmenti a képeket.

A képfeldolgozás most nagyon népszerű script programozási nyelv a PHP. Tekintsük a leggyakoribb munka grafikai fájlokat.

Először is, győződjön meg róla, hogy a könyvtár GD - csak futtatni a szkriptet phpinfo () függvény; Ennek eredményeképpen a szkript fogja látni információkkal könyvtár (benne van a dobozban gd):

Az első függvény létrehoz egy új képet, vagy nyisson meg egy meglévőt. Amíg mi csak azokat a nyílás egy meglévő kép:

Mint látható, imagecreatefromjpeg () függvényt, hogy nyissa ki a JPEG kép típusát, de nem jeleníti meg a kijelzőn. $ Im változó tartalmazza az elérési utat a képet. Ha a megadott fájl nem létezik, akkor a „Nem lehet megnyitni a képet.”

Ha azt szeretnénk, hogy nyissa ki a kép nem JPEG, és például, GIF, akkor meg kell hívni egy másik funkció:

De talán már sejtette, hogy ez a módszer a fájl megnyitása, van egy hátránya. A probléma az, hogy nem mindig lehet tudni, hogy a fájltípus, ami csökkenti a funkcionalitást a forgatókönyvet.

De ez lehet legyőzni. Hogy oldja meg ezt a problémát, úgy véljük, egy univerzális függvény, amely megnyitja a képfájlokat a leggyakoribb típus.

Fájlok megnyitása különböző típusú

A sokoldalú funkció fedezze fel a különböző típusú grafikus fájlok azonosítására a fájl kiterjesztése:

De még ez a lehetőség nem oldja meg az összes problémát: mi a teendő, ha a fájl kiterjesztését rosszul van beállítva? Végtére JPG kép könnyen adja meghosszabbítását GIF (test_jpg.gif) vagy GIF úgynevezett „test_gif.txt”.

A döntés lesz a következő - Keresés a lehetséges módja, hogy nyisson meg egy fájlt imagecreate () függvényt. Miután mindenféle képfájlokat (a leggyakoribb) nem annyira, amivel elég gyorsan, hogy pontosan meghatározzák a legjobb típust.

Íme egy példa egy ilyen script:

Mint látható, az ötlet nagyon egyszerű - mi csak felváltva imagecreate hívás () függvény, amíg típusának megállapításához grafikus fájlt.

Mégis lehetséges, hogy milyen típusú fájlt a getimagesize () függvény - visszaadja egy tömb, amely információkat tartalmaz a fájl - [szélesség, magasság, imageType] (szélesség, magasság, fájltípus) - részletesebben erről a funkcióról - getimagesize.

Most, hogy tudjuk, hogyan kell megnyitni egy képet, úgy a függvény feldolgozása.

Következtetés a képernyőn, és mentse el a képet

Ha megnyitja a képet, és rávenni, hogy a manipuláció, természetesen van egy vágy, hogy az eredmények. Vannak speciális funkciók, mint például imagegif () és imagejpeg ().

Itt egy példa azok használatáról:

Ha ezt a forgatókönyvet a fenti linkre, akkor az eredmény meg fogja lepni: ahelyett, hogy a képen látható, egy sor homályos karakter - ez az Opera böngésző a Mozilla Firefox, böngésző motor IE (CAM Internet Explorer, Avant és Maxton) képes helyesen azonosítani a fájltípust.

Ez történik az egyszerű oknál fogva, hogy nem küldi el a böngésző a megfelelő fejléc mező Content-Type fejléc. Állás után a fajta „text / html” alapértelmezés szerint, ezért böngészők hibásan azonosították azt a fájltípust, - a kép helyett megjelenése után egy szöveges fájlt. Mi jött ki belőle, amit már látott.

Ahhoz, hogy megoldja ezt a problémát, akkor be kell állítania az adatformátum egyértelműen a mező Content-Type fejléc:

Most, ha ezt a szkriptet, akkor láthatjuk, hogy a kép jelenik meg helyesen minden böngészőben. Az is lehetséges, hogy mentse a képet a merevlemezre. Mégis lehetséges, hogy egyértelműen meg kell határozni a nevét a tárolt kép - A második érv imagejpeg () függvény használható erre.

Itt van, hogyan néz ki:

Ennek eredményeképpen a szkript fog megjelenni a mappában my_image.jpg fájlt. Mivel ebben az esetben nem tudjuk megjeleníteni a képeket a kijelzőn, majd küldje el a fejléc mező egyértelműen nem szükséges.

Íme néhány gyakorlati példát a GD könyvtár

Tudod teremt egy sokszög (poligon) A imagepolygon () függvényt.

bool imagepolygon (resource kép, tömb pont, int NUM_POINTS, int szín)

imagepolygon () létrehoz egy sokszög a kép.

kép - pont olyan képet, amelyen a sokszöget

rámutat - ez a PHP-tömb, amely a sokszög csúcsainak, azaz pont [0] = x0, pont [1] = y0, rámutat [2] = x1, rámutat [3] = y1, stb

NUM_POINTS az összes csúcsot.

szín - a szín a sokszög megadott sorokat ImageColorAllocate () függvény

Továbbá, azt kell használni imagecreate () függvényt létrehozni egy képet, meg a koordinátákat a sokszög tömbként száma, koordinátákat, és a színe a sokszög vonalak.

Php és GD - munka grafika - php

Használata GD Könyvtár segítségével a kép lehet forgatni egy előre meghatározott szöggel imagerotate () függvény.

erőforrás imagerotate (resource src_im, úszó szöge, int bgd_color)

Elvégzi a forgási szögben src_im kép szögben.

Az érvelés vezetjük bgd_color azonosító háttérszín, mellyel töltse üres területek kerülnek elő a forgás közben a kép.

Képek konvertálása szürke (szürkeárnyalatos)

Php és GD - munka grafika - php

Php és GD - munka grafika - php

Néhány elmélet, amelyek tiszta képet algoritmusok átalakítás egy színes (RGB) szürke (YIQ):

YIQ színű modell (YIQ színű modell)

Minden szín a YIQ mintája beállításával legalább három paraméter: Y - intenzitás (luminancia,) és két színkoordinátái I és Q együtt létrehozását lehetővé tevő színes vezérlés zöld, kék, sárga és a bíbor színeket.

Tehát egy minimális értékei I és Q (0, 0) eredménye egy zöld színű, és beállíthatja a legnagyobb értékek (255,255), így egy lila színű. Mindegyik komponens YIQ modell között lehet 0 és 255.

Az első rész a szkript látja el a felkészülés képek színes konvertáló:

Generációs fekete-fehér képek

A kód jelen két cikluson, hogy megkerülje a teljes képet, és a koordinátákat Y X.

A imagecolorat () függvény az index pixel színek a színpaletta, amely a képre (változó $ forrás) koordinátái x. y (x változó $. $ y).

Továbbá van egy kihívás yiq () függvény segítségével konvertálja a színes kép a szürke tónusok. A végén használt ImageSetPixel () funkció a rajz meghatározott szín pixel koordinátái x. y képről képre.

Remélem, hogy a cikk elolvasása után akkor világossá válik néhány szempontból grafika PHP. Bár a cikk és csak az alapvető funkciókat, de egyértelmű, hogy a PHP egy nagy készlet jellemzői generálására és grafikák szerkesztése.

Kapcsolódó cikkek