imagettftext
(PHP 4, PHP 5, PHP 7, PHP 8)
imagettftext — Schreibt Text mit TrueType-Schriftarten ins Bild
Beschreibung
Hinweis:
Vor PHP 8.0.0 war imagefttext() eine erweiterte
Variante von imagettftext(), die zusätzlich den
Parameter extrainfo unterstützte. Ab PHP 8.0.0 ist
imagettftext() ein Alias von
imagefttext().
Parameter-Liste
-
image Ein GdImage-Objekt, das von einer der Funktionen zur Bilderzeugung, z. B.
imagecreatetruecolor(), zurückgegeben wurde.
size
-
Die Schriftgröße in Punkten.
angle
-
Der 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.
y
-
Die y-Koordinate. Diese legt die Position der Grundlinie der Schriftart
fest, nicht den untersten Rand des Zeichens.
color
-
Der Farbindex. Die Verwendung des negativen Indexwerts schaltet das
Antialiasing ab. Siehe imagecolorallocate().
fontfile
-
Der 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 fontfile gilt.
text
-
Die UTF8-kodierte Text-Zeichenkette.
Kann dezimale numerische Zeichen-Entity-Referenzen (in der Form
€) enthalten, um Zeichen außerhalb des
ASCII-Bereichs 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. um diese Zeichen-Entity-Referenzen nach UTF-8
zu konvertieren, kann html_entity_decode() verwendet
werden.
Wenn ein Zeichen in der Zeichenkette verwendet wird, das von der
Schriftart nicht untersützt wird, wird es durch ein hohles Rechteck
ersetzt.
options
-
Ein Array mit dem Schlüssel linespacing, der einen
float-Wert enthält.
Rückgabewerte
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.
Beispiele
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);
?>
Das oben gezeigte Beispiel erzeugt
eine ähnliche Ausgabe wie:
Anmerkungen
Hinweis: Diese Funktion ist nur verfügbar
wenn PHP mit Freetype unterstützung (--with-freetype-dir=DIR)
kompiliert wurde
Siehe auch
- imagettfbbox() - Ermittelt das umgebende Rechteck eines Textes, der eine TrueType-Schriftart
verwendet
- imagefttext() - Write text to the image using fonts using FreeType 2
- imagestring() - Zeichnet einen horizontalen String