Wer mit Codeigniter (1.7.1) und der PHP-Funktion imagettftext() versucht Text in ein Bild zu schreiben wird – zumindest wenn er eine XAMPP Umgebung unter Windows nutzt – auf seltsame Probleme stoßen.

Trotz korrektem Pfad zur integrierten Schrift, der texb.ttf, tritt nämlich die Fehlermeldung imagettftext: Could not read font auf. Da hilft kein experimentieren oder ändern des Pfades, es hilft nur eine neue Schriftart, denn offensichtlich ist diese Schriftart defekt oder funktioniert unter Windows nicht korrekt (unter Linux habe ich es noch nicht getestet). Massig coole Schriftarten gibt’s übrigens bei dafont. Die neue Schriftart sollte dann im dafür vorgesehenen Ordner system/fonts/ gespeichert werden.

Und hier nochmal ein kleines Snippet, das zeigt wie man dann mit der neuen Schriftart Texte in Bilder schreibt:

// Bild erzeugen, Farbe allokieren
$width = 400;
$height = 100;
$im = imagecreate($width, $height);
$background_color = ImageColorAllocate ($im, 255, 255, 255);
$text_color = ImageColorAllocate ($im, 0,0,0);
 
// schreiben
$text = 'TEXT';
$font_size=60;
$angle=0;
$x=30;
$y=80;
$font_path     = './system/fonts/neue_schriftart.ttf';
imagettftext($im, $font_size, $angle, $x, $y, $text_color, $font_path, $text);
 
// Bild ausgeben
header("Content-type: image/png");
ImagePNG ($im);
ImageDestroy($im);

Ich habe in diesem Fall ein png erstellt. Den Code umzubauen, so dass ein gif oder jpeg erzeugt wird, sollte aber kein Problem sein.