Posledně jsme si ukázali, jak vytvořit graf v PHP. Ale v tomto seriálu si ukážeme veškeré možnosti knihovny GD a práce s grafikou. Ukážeme si, jak vykreslit jpeg, gif a png. Ukážeme si, jak oříznout obrázek, jak nakreslit ikonku a mnoho dalších věcí, které knihovna GD dokáže. Na rozdíl od předchozího článku budeme vším procházet postupně, až na konci seriálu si ukážeme kompletní aplikace (kreslení ikonek, tvorba fotogalerie, kreslení tlačítek,…). Současně od třetího dílu seriálu budou zadávány úkoly.
Jako první věc bych rád řekl, že se nebude jednat o pouhý překlad dokumentace ze stránek PHP.net, i když popisky jednotlivých funkcí použiji právě z této oficiální dokumentace.
Podpora
V práci s obrázky v PHP nemáte žádné hranice. Jediné, co vám brání, je podpora GD knihovny. Různé verze této knihovny podporují různé formáty obrázků. Nemáte-li ještě GD knihovnu, případně máte-li starší, nejnovější si můžete stáhnout. Knihovna je open-source a je multiplatformní.
Od PHP 4.3 je GD knihovna již implementována. Tato knihovna má přidané některé funkce. Je lepší využívat tuto implementovanou knihovnu, jelikož je stabilnější.
Od PHP 5.0 není podporována knihovna GD 1.x. Tuto nahrazuje GD 2.0.33 a vyšší.
Co všechno zvládne moje GD knihovna
Pokud potřebujete zjistit podporu formátů u GD knihovny, použijte tento zdrojový kód:
<?php
if (imagetypes() & IMG_PNG) {
echo "PNG je podporován<br/>";
}
if (imagetypes() & IMG_GIF) {
echo "IMG je podporován<br/>";
}
if (imagetypes() & IMG_JPEG) {
echo "JPEG je podporován<br/>";
}
if (imagetypes() & IMG_WBMP) {
echo "WBMP je podporován<br/>";
}
if (imagetypes() & IMG_XPM) {
echo "XPM je podporován<br/>";
}
?>
Tento skript by měl vypsat, které typy obrázků vaše GD knihovna podporuje.
Obecně platí: Verze GD starší než 1.6 podporují GIF, ale nepodporují PNG. Naopak verze novější než 1.6 a zároveň starší než 2.0.28 podporují PNG, ale nepodporují GIF. Teprve verze novější než 2.0.28 podporují GIF i PNG.
Písmo v GD knihovně
Knihovna může podporovat celkem 4 typy písma: FreeType 1.x, FreeType 2.0, T1, TTF – opět v – závislosti na verzi knihovny. V tomto seriálu budeme používat převážně True Type Fonts. Toto by bylo na úvod asi vše a příště se podíváme již na první funkce.