imagettftext
(PHP 4, PHP 5, PHP 7, PHP 8)
imagettftext — Schreibe Text ins Bild unter Verwendung von True-Type-Schriftarten
Beschreibung
GdImage
$image
,float
$size
,float
$angle
,int
$x
,int
$y
,int
$color
,string
$font_filename
,string
$text
,array
$options
= []): array|false
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 die
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 von links nach rechts zu lesenden Text ergeben. Höhere Werte repräsentieren Rotation entgegen dem Uhrzeigersinn. Zum Beispiel resultiert ein Wert von 90 in von unten nach oben zu lesendem Text.
-
x
-
Die per
x
undy
angegebenen Koordinaten definieren den Startpunkt des ersten Zeichens (in etwa die linke untere Ecke). Das ist anders als bei der ImageString()-Funktion, 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 verwenden werden soll.
Der Pfad zu der TrueType-Schriftart, die Sie verwenden möchten. 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-Bereiches zu referenzieren. Das hexadizimale Format (wie ©) wird ebenfalls unterstützt. UTF-8 kodierte Zeichenkette 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.
Wird ein Zeichen in der Zeichenkette verwendet, das von der Schriftart nicht untersützt wird, wird es durch ein hohles Rechteck ersetzt.
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 Punkt sind relativ zum
Text, unabhängig vom Winkel, so dass "obere linke Ecke" bedeutet "in der
oberen linken Ecke, wenn der Text horizontal gesehen wird". Im Fehlerfall
wird false
zurückgegeben.
Changelog
Version | Beschreibung |
---|---|
8.0.0 |
Die options wurden hinzugefügt.
|
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 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 bessere Textqualität als imagejpeg()
imagepng($im);
imagedestroy($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() - Ermittle das umgebende Rechteck eines Textes unter Verwendung von True-Type Schriftarten
- imagefttext() - Write text to the image using fonts using FreeType 2