(PHP 4, PHP 5, PHP 7, PHP 8)
imagettftext — Schreibt Text mit TrueType-Schriftarten ins Bild
$image,$size,$angle,$x,$y,$color,$font_filename,$text,$options = []
Schreibt den angegebenen text ins Bild unter
Verwendung von True-Type-Schriftarten.
Hinweis:
Vor PHP 8.0.0 war imagefttext() eine erweiterte Variante von imagettftext(), die zusätzlich den Parameter
extrainfounterstützte. Ab PHP 8.0.0 ist imagettftext() ein Alias von imagefttext().
imageEin GdImage-Objekt, das von einer der Funktionen zur Bilderzeugung, z. B. imagecreatetruecolor(), zurückgegeben wurde.
sizeDie Schriftgröße in Punkten.
angleDer Winkel in Grad, wobei 0 Grad einen von links nach rechts zu lesenden Text ergibt. Höhere Werte bewirken eine Drehung gegen den Uhrzeigersinn. Ein Wert von 90 ergibt zum Beispiel einen von unten nach oben zu lesendem Text.
x
Die per x und y
angegebenen Koordinaten definieren den Startpunkt des ersten Zeichens
(in etwa die linke untere Ecke). Das ist anders als bei der
Funktion imagestring(), bei der
x und y die obere rechte
Ecke des ersten Zeichens darstellen. Zum Beispiel ist oben links 0, 0.
yDie y-Koordinate. Diese legt die Position der Grundlinie der Schriftart fest, nicht den untersten Rand des Zeichens.
colorDer Farbindex. Die Verwendung des negativen Indexwerts schaltet das Antialiasing ab. Siehe imagecolorallocate().
fontfileDer Pfad zu der TrueType-Schriftart, die verwendet werden soll.
Der Pfad zu der TrueType-Schriftart, die verwendet werden soll.
Abhängig davon, welche Version der GD-Bibliothek PHP verwendet, wird,
wenn fontfile nicht mit einem
vorangestellten / beginnt, .ttf
an den Dateinamen angehängt und die Bibliothek versucht,
diesen Dateinamen entlang eines von der Bibliothek definierten
Schriftarten-Pfades zu suchen.
Bei der Verwendung von Versionen der GD-Bibliothek, die älter als
2.0.18 sind, wurde ein space-Zeichen, anstelle eines
Semikolons als Pfad-Trennzeichen für verschiedene Schriftdateien
verwendet. Die unbeabsichtigte Verwendung dieser Eigenschaft führt zu
einer Warnmeldung: Warnung: Schriftart konnte nicht
gefunden/geöffnet werden. Für diese betroffenen Versionen
besteht die einzige Lösung darin, die Schriftart in einen Pfad zu
verschieben, der keine Leerzeichen enthält.
In vielen Fällen, in denen sich eine Schriftart im selben Verzeichnis befindet wie das Skript, das sie verwendet, kann der folgende Trick die Probleme beim Einbinden lösen.
<?php
// Setzten der Umgebungsvariablen für GD
putenv('GDFONTPATH=' . realpath('.'));
// Benennen der zu verwendenden Schriftart
// (zu beachten ist das Fehlen der Erweiterung .ttf)
$font = 'IrgendeineSchriftart';
?>Hinweis:
Zu beachten ist, dass open_basedir nicht für
fontfilegilt.
textDie UTF8-kodierte Text-Zeichenkette.
Kann dezimale numerische Zeichen-Entity-Referenzen (in der Form €) enthalten, um Zeichen außerhalb des ASCII-Bereiches zu referenzieren. Das hexadizimale Format (wie ©) wird ebenfalls unterstützt. UTF-8-kodierte Zeichenketten können direkt übergeben werden.
Benannte Zeichen-Entity-Referenzen, wie ©, werden nicht unterstützt. html_entity_decode() kann verwendet werden, um diese Zeichen-Entity-Referenzen nach UTF-8 zu konvertieren.
Wenn ein Zeichen in der Zeichenkette verwendet wird, das von der Schriftart nicht untersützt wird, wird es durch ein hohles Rechteck ersetzt.
Gibt ein Array mit 8 Elementen zurück, die die vier Punkte des umgebenden
Rechtecks des Textes repräsentieren. Die Reihenfolge der Punkte ist unten
links, unten rechts, oben rechts und oben links. Die Punkte sind relativ
zum Text, unabhängig vom Winkel, sodass "obere linke Ecke" bedeutet "in der
oberen linken Ecke, wenn der Text horizontal gesehen wird". Im Fehlerfall
wird false zurückgegeben.
| Version | Beschreibung |
|---|---|
| 8.0.0 |
Die options wurden hinzugefügt.
|
Beispiel #1 imagettftext()-Beispiel
Dieses Beispielskript erzeugt ein weißes 400x30 Pixel großes PNG mit dem Text "Testing..." in schwarz (mit grauem Schatten) in der Schriftart Arial.
<?php
// Setze den Content-Type
header('Content-Type: image/png');
// Erzeuge das Bild
$im = imagecreatetruecolor(400, 30);
// Erzeuge einige Farben
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
// Der zu zeichnende Text
$text = 'Testing...';
// Bei Bedarf ist der Pfad anzupassen
$font = 'arial.ttf';
// Füge etwas Schatten zum Text hinzu
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
// Füge den Text hinzu
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
// Die Verwendung von imagepng() ergibt eine bessere Textqualität als imagejpeg()
imagepng($im);
imagedestroy($im);
?>Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
Hinweis: Diese Funktion ist nur verfügbar wenn PHP mit Freetype unterstützung (--with-freetype-dir=DIR) kompiliert wurde