Signatur
Beschreibung
imagestring() rendert einen einfachen horizontalen Text direkt in eine GD-Bildressource. Die Funktion eignet sich für schnelle Beschriftungen von Grafiken, Wasserzeichen oder einfache Bild-Annotationen, wenn keine TrueType- oder FreeType-Schriften benötigt werden.
Der Parameter font akzeptiert entweder einen Wert von 1 bis 5 für die eingebauten GD-Bitmap-Schriftarten (1 = kleinste, 5 = größte) oder ein GdFont-Objekt, das mit imageloadfont() geladen wurde. Die Position (x, y) bezeichnet die obere linke Ecke des Textes in Pixeln.
Für qualitativ hochwertige Typografie mit Anti-Aliasing, variablen Schriftgrößen und TTF-/OTF-Schriften sollte stattdessen imagettftext() oder imagefttext() verwendet werden. imagestring() ist jedoch ohne externe Bibliotheken sofort verfügbar und hat keine Abhängigkeiten.
Die Schriftfarbe muss zuvor mit imagecolorallocate() erzeugt worden sein. Das Zeichen-Koordinatensystem beginnt oben links (0, 0).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $image Pflicht | GdImage | Das Ziel-Bildobjekt, auf das gezeichnet wird. Wird typischerweise mit imagecreatetruecolor(), imagecreatefromjpeg() o. ä. erzeugt. |
|
| $font Pflicht | GdFont|int | Die zu verwendende Schriftart. Ganzzahlen 1–5 wählen eine der eingebauten GD-Bitmap-Schriften aus (aufsteigende Größe). Alternativ ein GdFont-Objekt aus imageloadfont(). |
|
| $x Pflicht | int | X-Koordinate der oberen linken Ecke des Textes in Pixeln (ab der linken Bildkante). | |
| $y Pflicht | int | Y-Koordinate der oberen linken Ecke des Textes in Pixeln (ab der oberen Bildkante). | |
| $string Pflicht | string | Der auszugebende Text. Unterstützt nur ASCII-Zeichen; für Umlaute oder Unicode ist imagettftext() besser geeignet. |
|
| $color Pflicht | int | Die Textfarbe als Farb-Identifier, der zuvor mit imagecolorallocate() oder imagecolorallocatealpha() erzeugt wurde. |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. ungültiges Bildobjekt).Beispiele
Einfache Textbeschriftung auf einem Bild
<?php
// Bild erstellen
$image = imagecreatetruecolor(300, 100);
// Hintergrundfarbe (weiß)
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);
// Textfarbe (dunkelblau)
$darkBlue = imagecolorallocate($image, 0, 0, 139);
// Text mit eingebauter Schriftgröße 5 zeichnen
imagestring($image, 5, 10, 35, 'Hallo, Welt!', $darkBlue);
// Als PNG ausgeben
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
Bild mit mehreren Zeilen und unterschiedlichen Schriftgrößen
<?php
$image = imagecreatetruecolor(400, 150);
$bg = imagecolorallocate($image, 240, 240, 240);
$red = imagecolorallocate($image, 200, 0, 0);
$black = imagecolorallocate($image, 0, 0, 0);
imagefill($image, 0, 0, $bg);
// Titel mit großer Schrift (Größe 5)
imagestring($image, 5, 10, 10, 'Messung abgeschlossen', $red);
// Details mit kleiner Schrift (Größe 2)
imagestring($image, 2, 10, 45, 'Datum: ' . date('d.m.Y'), $black);
imagestring($image, 2, 10, 60, 'Ergebnis: 42.7 ms', $black);
imagestring($image, 2, 10, 75, 'Status: OK', $black);
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
// Wichtig · Fallstricke
Zeichensatz-Einschränkung: Die eingebauten GD-Schriften unterstützen nur den ASCII-Zeichensatz (Zeichen 0–127 bzw. den erweiterten Latin-1-Bereich). Umlaute wie ä, ö, ü sowie andere Nicht-ASCII-Zeichen werden möglicherweise nicht korrekt dargestellt. Für internationale Texte sollte imagettftext() mit einer geeigneten TTF-Schriftdatei eingesetzt werden.
Koordinaten: Die Position bezieht sich auf die obere linke Ecke des Textes — im Gegensatz zu imagettftext(), das die Baseline des ersten Zeichens verwendet.
PHP 8.0: Ab PHP 8.0 wird anstelle von resource ein GdImage-Objekt verwendet. Bestehender Code, der das Ergebnis von imagecreate*() direkt weitergibt, bleibt kompatibel.