Grafická knihovna PHP (4)
Jak v grafice využívat texty?
Práce s textem může uživatelům PHP připadat zbytečná, ale tady jde o grafické využití textu ve formátech PNG nebo GIF. K čemu je možné texty využít? Například při tvorbě loga, odkazového banneru nebo obrázkového odkazu.
Způsob zápisu textového řetězce do kódu PHP jsem ukázal už v předchozích kapitolách, zejména u fotografií je asi využití zřejmé. V ukázce, která je v tomto článku, je tvorba banneru s odkazem na Chytráka Tima pomocí textu v obdélníkovém rámečku. Nejde pouze o běžný zápis řetězce, ale využívá se externí soubor s fontem, na který se v kódu odkazuje. Přestože nemusí jít o běžné písmo použitelné pro webové publikování, vzhledem k převodu do grafického formátu to nevadí, prohlížeč jej vnímá jako obrázek (zde v PNG).
Ukázka kódu:
Header("Content-type:image/png");
/* Nastavíme rozměry banneru */
$banner = ImageCreate(491, 151);
$modra_svetla=ImageColorAllocate($banner, 100, 120, 230);
$modra_tmava=ImageColorAllocate($banner, 0, 0, 150);
$zluta=ImageColorAllocate($banner, 255, 255, 153);
$seda=ImageColorAllocate($banner, 170, 170, 170);
/* Zde je uveden externí soubor s použitým písmem, který je na výběru uživatele (formát TTF) */
$font="použité písmo";
/* Rámeček vnější */
ImageFilledRectangle($banner, 0, 0, 490, 150, $modra_tmava);
/* Rámeček plný */
$styl=array($seda, $modra_svetla);
ImageSetStyle($banner, $styl);
ImageFilledRectangle($banner, 4, 4, 486, 146, IMG_COLOR_STYLED);
/* Levý okraj */
ImageFilledRectangle($banner, 0, 0, 30, 150, $modra_tmava);
/* Svislý text */
$text="Osobní publikační web";
ImageStringUp($banner, 2, 9, 138, $text, $modra_svetla);
/* Text */
$text="ChytrákTim.cz";
/* Pozadí zadního textu */
$box=ImageTTFBBox(50, 0, $font, $text);
$sirka=80;
$vyska=100;
ImageTTFText($banner, 50, 8, $sirka, $vyska, $seda, $font, $text);
ImageColorTransparent($banner, -1);
/* Pozadí předního textu */
$box=ImageTTFBBox(50, 0, $font, $text);
$sirka=45;
$vyska=132;
ImageTTFText($banner, 50, 8, $sirka, $vyska, $zluta, $font, $text);
ImageColorTransparent($banner, -1);
/* Copyright */
$text="-pch-";
ImageString($banner, 2, 453, 130, $text, $zluta);
ImagePNG($banner);
ImageDestroy($banner);
Je vidět, že použité písmo nemá na prohlížeč žádný vliv, spíše je problém u některých znaků v češtině. Ale fonty v grafice nejsou ničím výjimečným, například jejich nabídka ve vektorovém programu Zoner Callisto hodně převyšuje počet doporučených písem pro internetové publikování.
Poznámka: uvedený obrázek slouží pouze pro potřeby článku, nikoli jako skutečný odkaz. Obrázkové linky jsou k dispozici na stránce Kontakt.
22-08-2008