Életvonalak grafika php-ben (ahogyan a metrikus mutatók)

Minden a honlapunkon - a saját oldalak díszítésére. Most megpróbálunk érdekes és hasznos anyagokat gyűjteni a tervezésről és a közel-design témákról, a programozásról, a tárhelyről és a helyszínek reklámozásáról.

Webdesign - a webhelyek létrehozásával közvetlenül összefüggő kérdések

Grafika - rajzolás, kollázs, animáció

Tárhely - a webhelye webes elhelyezése

Az élet a neten

Promóció, promóció, optimalizálás

programozás

A jpeg, png, tiff, gif képek létrehozásához és manipulálásához szükség van a gd_library könyvtárra. Mivel a PHP 4.3, ez a könyvtár beépített. A -with-gd-val telepíteni vagy újrafordítani a PHP-t. A Windows felhasználók számára meg kell adni a php.ini fájl kiterjesztését = php_gd2.dll.

Ha képekkel dolgozik a fejlesztő szükség lehet támogatást további betűtípusok és méretek - vannak speciális bővítmények GD együttműködni a formátumok gif, xpm és mások, valamint a további betűkészletek telepítése.

Tekintsük azokat az alapvető funkciókat, amelyek lehetővé teszik a képek böngészőben történő létrehozását, módosítását és megjelenítését.

A meglévő képek képeinek létrehozására szolgáló funkciók:

ImageCreateFromGif (), ImageCreateFromPng (), imagecreatefromjpeg () és hasonlók, figyelembe paraméterként url vagy az utat a kép fájl vissza azonosítót képviselő egy adott képet.

Például: $ image = ImageCreateFromGif (path / to / a / image.gif ') visszatér az azonosító a kép image.gif amelyen keresztül később lehet modiftsirovat kép jelenik meg a szöveg, kombinálni más képeket. Funkció végrehajtásának meghiúsulása esetén ez a típus hamis, azaz könnyű ellenőrizni és kezelni a hibát típusellenőrzéssel:

ha (! $ image = @imagecreatefromgif ('path / to / your / image.gif'))
// a végrehajtandó kód, ha a képet nem nyitották meg
>

Új kép létrehozásához szükséges funkciók:

Imagecreatetruecolor (), imagecreate () üres képeket hoz létre, paraméterként a létrehozott képpont szélességét és magasságát. Így ha az előző példában nem tudtunk létrehozni egy már létező képhez tartozó azonosítót, létrehozhatunk egy új képet.

ha (! $ image = @imagecreatefromgif ('path / to / your / image.gif'))
image = imagecreatetruecolor (88, 31); // ha nincs kép alapú image.gif, akkor egy új képet hoztunk létre, amelynek mérete 88x31 pixel
>

A színekkel végzett munkák:

Imagecolorallocate () - argumentumként a kép azonosítója és a kívánt szín három összetevője (RGB: piros, zöld és kék) meghatározza a kívánt színt ehhez a képhez.

Példánkban definiáljuk a szöveges kimenet háttér- és betűszínét:

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

A kép színével való kitöltése:

Imagefill (), imagefilledrectangle (), imagefilledarch (), imagefilledellipse () és más imagefill ... funkció véve érvek koordinátáit geometriai formák a kép, hogy egy töltet azon részeit a kép megadott színnel. Például töltse meg a téglalapot a háttérszínnel:

imagefill ($ image, 0, 0, $ backgroundcolor); // itt 0, 0 a betöltött terület bal felső sarkának koordinátái.

Szövegkijelzés funkciói:

Az Imagestring (), imagettftext (), imagestringup () különböző betűkkel különböző irányokba nyomtatják a szöveget.

Például,
imagestring ($ image, 5, 0, 0, 'szöveg', $ fontcolor); // nyomtassa ki a szöveget a képünkre $ image a beépített betűtípuson a koordinátákon (bal felső pont) 0, 0.

A beépített betűtípusokon kívül használhatja a imageloadfont () függvényben regisztrált betűtípusokat is. A imagettftext () függvény lehetővé teszi a típus típusú típus betûinek használatát.

Ebben a szakaszban, akkor lehet, hogy a probléma a visszavonását szövege orosz - beépített betűtípus (az ImageString function () 1-5 mérettől függően) nem támogatja a cirill ábécét, és akkor is, ha az Ön által megadott funkcióját ImageTTFText font (Cirill) is megjelenik a hibás kódolás.

Ez a probléma megoldható számos módon. A legegyszerűbb mód az, hogy egy cirill karaktert tartalmazó karakterláncot UTF-8 kódolással konvertáljon:
$ text = iconv ("windows-1251", "UTF-8", "szövegünk");

Speciális hatások hozzáadása:

A gd_library számos funkciója lehetővé teszi speciális effektusok hozzáadását az aktuális képhez, új objektumok rajzolásához, bizonyos területek kijelöléséhez stb. Íme néhány példa:

  • függvény imagedashedline () - pontozott vonalt von be;
  • function imageellipse () - ellipszetet rajzol;
  • function imagesetbrush () - ecsetet hoz létre;
  • function imagefilter () - a képen egy bizonyos szűrőt alkalmaz, például inverzálja a kép színeit, átalakítja a képet fekete-fehér módba, megváltoztatja a fényerőt, a kontrasztot, hozzáadja a foltot, és így tovább.

A fogadott kép kibocsátása a felhasználónak:

Az imagegif (), imagepng (), imagejpeg () függvények egy böngészőhöz vagy fájlhoz továbbítják az eredményt. Ne felejtsük el, hogy az ilyen szkriptekhez tartozó Content-Type fejlécet újra kell definiálni:

header ("Content-type: image / gif");
imagegif ($ image);

Végezzük el a példát a logikus következtetésre. Tegyük fel, hogy a célunk az volt, hogy hozzon létre egy úgynevezett CAPTCHA (captcha), hogy van, képek, amelyek minden egyes alkalommal az oldal megjelenik egy új karakterek sorozata - például chetyrhznachnoe számát.


// próbálj meg létrehozni egy captcha-t a képből néhány "zajos" háttérrel:
ha (! $ image = @imagecreatefromgif ("path / to / your / image.gif"))
// ha nincs kép alapú image.gif, akkor egy új képet hoztunk létre, amelynek mérete 88x31 pixel
image = imagecreatetruecolor (88, 31);
// definiálja a háttérszínt:
$ backgroundcolor = imagecolorallocate ($ image, 255, 255, 255);
// töltse ki a kapott képet a kiválasztott színnel:
imagefill ($ image, 0, 0, $ backgroundcolor);
>
// adja meg a betűszínt:
$ fontcolor = imagecolorallocate ($ image, 0, 0, 0);
// hozzon létre egy véletlenszerű négyjegyű számot:
$ text = mt_rand (1000, 9999);
// nyomtassa ki a számot a képre:
imagestring ($ image, 5, 0, 0, "szöveg", $ fontcolor);
// és az eredményt visszaadja a felhasználónak:
header ("Content-type: image / gif");
imagegif ($ image);

Ez a szkript bármikor megnehezítheti, például úgy, hogy a dőlésszög a címke, egy árnyék a számok szűrők alkalmazásával a kapott kép.

Fotókkal dolgozhat:

Az exif. lehetővé teszi a digitális fotók fejlécében tárolt információk feldolgozását. A bővítmény funkcióinak kezeléséhez nincs szükség további könyvtárakra, a PHP-t egyszerűen csak a -enable-exif támogatással kell telepíteni. Windows-felhasználóknak: a php.ini fájlban a kiterjesztéseket = php_mbstring.dll és extension = php_exif.dll kell megadni, először az mbstringet kell megadni.

exif_imagetype () függvény véve érv az elérési utat a fájl lehetővé teszi, hogy meghatározza a képformátumot. Ez azért szükséges, hogy az exif más funkcióit ne alkalmazza a nem támogatott formátumú képekre. Képformátum további munka e funkciók kell gif, jpeg, png, swf, PSD, BMP, tiff_II, tiff_MM, J PC, jp2, JPX, JB2, SWC, IFF, wbmp, XBM.

Az exif_read_data () függvény az exif fejléceket a jpeg és a tiff fájlokból olvassa le.

Például:

Életvonalak grafika php-ben (ahogyan a metrikus mutatók)

// ellenőrizze, hogy a kép formátuma jpeg
ha (exif_imagetype ("image.jpeg") == IMAGETYPE_JPEG)
// olvasd el a fejléceket
$ imagedata = exif_read_data ("image.jpeg", 0, true);
ha ($ imagedata === hamis)
visszhang "Nincs fejléc"; // ha nincs fejléc
más
// nyomtassa ki a fejlécek tömbjeit szakaszok szerint
foreach ($ imagedata $ kulcs => $ szakasz)
foreach ($ szakasz mint $ name => $ érték)
echo "$ kulcs. $ név. $ érték";
>
>
>
más
echo "Nem támogatott formátum";

Ez a cikk leírja az olyan funkciók használatának lehetőségeit, mint a gd_library és exif kiterjesztés. Részletesebb információ a PHP-ben található képek kezeléséhez szükséges valamennyi funkcióról a hivatalos weboldal oldalain található, a Képfunkciók és az Exif függvények részben.

Kapcsolódó cikkek