Tento článok je určený predovšetkým k pochopeniu základu knižnie GD a jej základných funkcii.
Česká vlajka v PHP
Najprv si povedzme čo vlastne česká vlajka je a z akých častí sa skladá. Je zložená z troch farieb (biela, modrá, červená). Bila a modrá tvoria na sebe dva pruhy, ktorý pretína červený trojuholník. V tomto článku ci zvolíme veľkosť vlajky 300x200px. V príklade budú použité nasledujúce funkcie:
imagecreate(int x, int y) - Vytvorí nový obrázok s rozmermi x a y.
imagecolorallocate(image, int red, int green, int blue) - Vytvorí novú paletu farieb. Prvé definovanie tejto funkcie v scripte určuje farbu pozadia.
imagefilledrectangle(image, int x1, int y1, int x2, int y2, int color) - Nakreslí plný štvoruhlník.
imagefilledpolygon(image, array points, int num_points, int color) - Nakreslí x uholník (v našom prípade trojuhlník).
imagepng(image) - Zobrazí obrázok vo formáte PNG.
Tak, a pustíme sa do tvorby samotnej vlajky. Najprv si spravíme základný čisto biely obrázok:
<?
// Nastavíme hlavičku na formát PNG
header("Content-Type: Image/png");
// Vytvoríme nový obrázok s rozmermi 300x200
$img = imagecreate(300,200);
// Definujeme si bielu farbu, ktorá bude zároveň farbou pozadia
$white = imagecolorallocate($img, 255, 255, 255);
// Obrázok zobrazíme vo formáte PNG
imagepng($img);
?>
Teraz pridáme modrý pás. Bude vychádzať zo stredu obrázku:
<?
header("Content-Type: Image/png");
$img = imagecreate(300,200);
$white = imagecolorallocate($img, 255, 255, 255);
// Definujeme si červenú farbu
$red = imagecolorallocate($img, 255, 0, 0);
// Vytvoríme červený pás s bodu 0x100 do 300x300.
imagefilledrectangle($img, 0, 100, 300, 300, $red);
imagepng($img);
?>
A konečne pridáme červený trojuhlník, čím vznikne kompletný česká vlajka.
<?
header("Content-Type: Image/png");
$img = imagecreate(300,200);
$white = imagecolorallocate($img, 255, 255, 255);
// Definujeme si modrú farbu
$blue = imagecolorallocate($img, 0, 0, 255);
$red = imagecolorallocate($img, 255, 0, 0);
imagefilledrectangle($img, 0, 100, 300, 300, $red);
// Zaznačíme body trojuholníka
$body = array(
0, 0,
0, 200,
150, 100
);
// A nakreslíme ho
imagefilledpolygon($img, $body, 3, $blue);
imagepng($img);
?>
Autor: timbulko