Práca s obrázkami v PHP: Ukážky

Jakub Žilinčan  /  06. 07. 2007, 00:00

Na jednoduchých príkladoch si vysvetlíme zopár funkcií pre prácu s obrázkami. Niektoré sme vysvetlili už v prvej časti, k ostatným sa dostaneme dnes.

Nebudeme zbytočne chodiť okolo horúcej kaše, a pustíme sa rovno do príkladíkov. Vytvorme si jednoducho súbor „obrazok.php“, na ktorom budeme všetko skúšať.

„A zrodil sa obrázok...“
Pri každom výstupe do browsera treba definovať hlavičky. My budeme pracovať s PNG obrázkami, takže naša hlavička vyzerá nasledovne:

header ("Content-type: image/png");

Pre vytvorenie obrázku použijeme funkciu imagecreatetruecolor ( šírka, výška ). Tá vykreslí čierny štvoruholník so zadanými rozmermi.

$im = @imagecreatetruecolor(120, 100)

A napokon, aby sa obrázok aj skutočne zobrazil, použijeme funkciu imagepng( zdroj obrázku ).

Celý kód, pre vytvorenie čierneho štvorca so šírkou 120, a výškou 100 pixelov, vyzerá takto:

<?php
header
("Content-type: image/png");
$im = @imagecreatetruecolor(120, 100);
imagepng($im);
imagedestroy($im);
?>

Vkladáme si text

Pre vkladanie textu sa poožíva napríklad imagestring( obrázok, veľkosť fontu, os x, os y, text, farba). Hovorím napríklad, pretože reťazec sa dá, okrem iného, vložiť aj pomocou imagechar().
Pre definovanie farby zas použijeme imagecolorallocate (obrázok, R, G, B);

Do vytvoreného štvoruhoľníka si tak potom ľahko vložíme text, s veľkosťou fontu 1, a s 5 pixelovým odstupom od krajov. Text bude ružovej farby.

<?php
header
("Content-type: image/png");
$im = @imagecreatetruecolor(50, 100);
$ruzova = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "Text v obrázku", $ruzova);
imagepng($im);
imagedestroy($im);
?>

Kruh

imagearc( obrázok, odstup x, odstup y, šírka, výška, výrez, výrez, farba).

Pre vytvorenie obrázku 200x200 pixelov, v ktorom bude stred kruh s odstupom 100 a 100 pixelov, výšky a šírky 150 pixelov, bez výrezov, čiernej farby, použijeme nasledujúci kód:

<?php
$img = imagecreate(200, 200);
$biela = imagecolorallocate($img, 255, 255, 255);
$cierna = imagecolorallocate($img, 0, 0, 0);
imagearc($img, 100, 100, 150, 150, 0, 360, $black);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
?>

Trojuholník

imagepolygon( obrázok, vrcholy v poli, počet vrcholov, farba )

Vytvoríme si obrázok, ktorému dáme červené pozadie, a doň vložíme pravouhlý trojuhoľník.

<?php
$image = imagecreate(400, 300);
$bg = imagecolorallocate($image, 250, 0, 0); //cierne pozadie obrazku
$farba_trojuholnika = imagecolorallocate($image, 255, 255, 255);
imagepolygon($image, array (
20, 20, //suradnice bodu A
20, 200, //suradnice bodu B
300, 200 //suradnice bodu C
),
3, //pocet vrcholov
$farba trojuholnika);

header("Content-type: image/png");
imagepng($image);
?>

Štvoruholník

Imagerectangle(obrázok, ľavý horný bod- os x, ľavý horný bod- os y, pravý dolný bod- os x, pravý dolný bod- os y, farba);
Vykreslíme čierny štvoruholník na fialkovom pozadí, kde ľavý horný bod bude na súradnici [10,10] a pravý dolný bod bude ležať na [250,250].

<?
$image = imagecreate(400, 300);
$bg = imagecolorallocate($image, 250, 0, 250); //fialkova
$farba_stvoruholnik = imagecolorallocate($image, 0, 0, 0);
imagerectangle($image, 10 , 10, 250, 250, $farba_stvoruholnik);
header("Content-type: image/png");
imagepng($image);
?>

Viacuholník

Pre vytvorenie viacuholníka sa používa tiež imagepolygon(), len musíme zadať iné číslo do "počet vrcholov", a takisto nadefinovať ich súradnice.

Na začiatok myslím stačí. Tieto ukážky síce vyzerajú, ako keby ich kreslilo malé dieťa v Skicári, ale pre pochopenie fungovania sú ako stvorené. Práce s obrázkami v PHP sa netreba báť, treba len skúšať, čo urobí čo, a získavať skúsenosti. Nabudúce ukážem ešte zopár funkcií, ktoré by mohli byť zaujímavé.


Neprehliadnite: