Konverze textu na PNG obrázek s využitím GD knihovny

Vydáno: 04. 05. 2014; Poslední aktualizace: 02. 02. 2020; Autor: Zdeněk Moravec

Někdy je výhodné si převést text na obrázek, pomocí PHP a GD knihovny to jde velmi snadno, stačí mít k dispozici font ve formě TTF souboru. Kód je velmi jednoduchý.

$text = 'Hello world';
$ttfFile = "luxuryImport.ttf";
$width = 160;
$height = 50;

header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"text.png\"");

$im = imagecreatetruecolor($width, $height);

$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, $width, $height, $white);

imagettftext($im, 40, 0, 0, 50, $black, $ttfFile, $text);

imagepng($im);
imagedestroy($im);

Na začátku je definice textu, cesta k souboru s fontem a velikost finálního obrázku. Potom jsou nastaveny HTTP hlavičky tak, aby byl PNG soubor prohlížečem nabídnut k uložení.

Potom si vytvoříme obrazový soubor, nadefinujeme si barvu pozadí a textu a obrázek vyplníme barvou pozadí (imagefilledrectangle).

Pomocí funkce ImageTTFText zapíšeme text ve zvoleném fontu do obrázku. První argument určuje identifikátor obrázku, druhý velikost fontu, třetí úhel natočení textu, další dva argumenty určují souřadnice textu (x a y). Šestý definuje barvu, sedmý cestu k TTF souboru a osmý vlastní text. Výsledek vypadá takto:

Funkce vrací pole obsahující osm prvků – souřadnice boundary boxu textu.

Funkční skript můžete stáhnout zde.

Odkazy

Leave a Reply

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..