© 2013 All rights reserved.
0

GD #2: Hello Word

GD knihovna je open source sloužící k dynamickému vytváření obrázku. Ve druhém pokračování se podíváme na vytvoření prázdného obrázku a vložení textu Hello Word.

V minulém článku jsem se zaměřil na základní, teoretické, vysvětlení GD knihovny.
V tomto dalším pokračování si vytvoříme první, prázdný, obrázek, do kterého vložíme text.

GD Info

První a základní funkce, která není zase až tak důležitá jako spíše zajímavá je:

Funkce vrací asociativní pole informací o verzi a možnostech aktuálně používané GD knihovny:

Parametr Význam
GD Verzion Verze libgd
FreeType Support True/False – podpora FreeType
FreeType Linkage Pokud je FreeType TRUE, vrací metodu, jakou je FreeType připojena.
‘with freetype’, ‘with TTF library’, nebo ‘with unknown library’
T1Lib Support True/False – Podpora T1Lib
GIF Read Support True/False – podpora čtení GIFů
GIF Create Support True/False – podpora pro tvorbu GIFů.
JPG Support True/False – podpora JPG
PNG Support True/False – podpora PNG
WBMP Support True/False – podpora WBMP
XPM Support True/False – podpora XPM
XBM Support True/False – podpora XBM
JIS-mapped Japanese Font Support True/False – podpora japonského písma

Pokud používáte, dnes nejrozšířenější, verzi 2.x, měli by jste dostat ve většině případů hodnoty true – 1.

GD_info je funkce, která není téměř vůbec používaná, jako alternativu lze použít funkci PHPInfo, která vrací všechny informace o aktuální GD knihovně stejně jako gd_info.

ImageCreate, ImageCreateTrueCollor

Pro vytvoření nového, prázdného obrázku, existují podstatě dvě funkce.

Obě funkce jsou si podobné jak návratovou hodnotou (vrací zdrojový obrázek), tak vstupními parametry:

  • Width – výška obrázku v pixelech
  • Height – šířka obrázku v pixelech

Rozdílné vlastnosti obou funkcí se projevují v počtu generované palety barev v obrázcích. Funkce ImageCreate dokáže generovat pouze 256 barev, což může ve většině případů dost vadit. Na rozdíl od toho funkce ImageCreateTrueCollor je schopna generovat 16.8 milionu barev. Bohužel podpora je až od verze GD 2.0.1.

ImageColorAllocate

Nezbytnou funkcí pro používání GD knihovny je ImageColorAllocate:

Funkce slouží k alokaci barvy, kterou chceme v obrázku použít. Jako vstupní parametry zadáváme RGB složky barvy, kterou chceme použít, a tuto barvu alokujeme do obrázku:

  • Image – resource obrázku
  • Red – červená složka barvy
  • Green – zelená složka barvy
  • Blue – modrá složka barvy

K funkci existuje jedna alternativa – ImageColorAllocateAlpha, která dokáže navíc vytvořit alpha kanál pro průsvitnost barvy. To ale není zatím důležité.

Funkce ImageColorAllocate musí být volána při každém vytvoření barvy, kterou chceme v obrázku používat.

ImageString

Abychom mohli vytvořit příklad Hello Word, budeme potřebovat znát ještě funkci pro výpis textu. Pro výpis textu existuje v GD knihovně funkcí víc, a celému výpisu se bude věnovat další kapitola. Prozatím nám bude stačit znát funkci ImageString, která vykreslí do obrázku textový řetězec:

Funkce obsahuje celkem šest povinných parametrů, které rozhodují o umístění textu, jeho barvě či velikosti:

  • Image – resource obrázku
  • Font – použité písmo pro vykreslení
  • X – levá horní souřadnice na ose x, kde bude začínat text
  • Y – levá horní souřadnice na ose y, kde bude začínat text
  • String – řetězec pro vypsání
  • Color – bavra vypsaného textu

Funkce vrací hodnotu TRUE při správném vykreslení, při chybě vrací hodnotu FALSE.

Funkce nemá žádné další rozšíření a umožňuje pouze vypsat vodorovný text.

ImagePng

Poslední funkce, kterou potřebuje prozatím znát je ImagePng.

Jak je z názvu patrné, funkce bude generovat obrázek ve formátu PNG. Samozřejmě existují alternativy i pro ostatní typy obrázku, prozatím si ale vystačíme s touto:

Funkce obsahuje celkem 4 parametry, z nichž pouze první je povinný, a ostatní jsou nepovinné:

  • Image – resource obrázku
  • Filename – název obrázku pro uložení
  • Quality – kvalita vykresleného obrázku
  • Filters – Umožňuje snížit velikost obrázku (prozatím nás nebude zajímat)

Pouze první parametr je povinný, pokud nebudou zadány ostatní parametry (hlavně filename), bude se obrázek vykreslovat přímo v prohlížeči a nebude nikde uložen.

Ukázkový příklad

Nyní známe všechny funkce, abychom si mohli vykreslit ukázkový přiklad Hello Word.

gd hello word

Při generování je nutné si uvědomit, že generované prvky v obrázku jsou chápány jako vrstvy, které
jsou navzájem překrývány. Prvek, který je vykreslen dříve, je překryt prvkem, který je vykreslen na něm (výjimku tvoří použití transparentních barev).

Ukázkový kód vykreslí obrázek do prohlížeče. Před jeho vykreslením je nutné prohlížeči oznámit, o jaký typ souboru se jedná odesláním správných hlaviček pomocí Header.

Kód vykreslí prázdný obrázek, ve kterém je dvakrát vypsáno Hello Word. Všimněte si, že text vypsaný jako druhý překrývá text vypsaný prvně.

V příští kapitole se zaměříme na různé druhy výpisu.

Comments are closed for this page

About
Hi, i am programmer from the Czech Republic. I love web development (Ruby, Ruby on Rails, PHP, Nette) and iOS development (Objective-C, Cocoa).
To cooperate, here is my phone:
+420 608 836