imagettftext

(PHP 4, PHP 5, PHP 7)

imagettftextSchreibe Text ins Bild unter Verwendung von True-Type-Schriftarten

Beschreibung

imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text ) : array

Schreibt den angegebenen text ins Bild unter Verwendung von True-Type-Schriftarten.

Hinweis:

imagefttext() ist eine erweiterte Variante von imagettftext(), die zusätzlich den extrainfo Parameter unterstützt.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

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 und y 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

The path to the TrueType font you wish to use.

Depending on which version of the GD library PHP is using, when fontfile does not begin with a leading / then .ttf will be appended to the filename and the library will attempt to search for that filename along a library-defined font path.

When using versions of the GD library lower than 2.0.18, a space character, rather than a semicolon, was used as the 'path separator' for different font files. Unintentional use of this feature will result in the warning message: Warning: Could not find/open font. For these affected versions, the only solution is moving the font to a path which does not contain spaces.

In many cases where a font resides in the same directory as the script using it the following trick will alleviate any include problems.

<?php
// Set the enviroment variable for GD
putenv('GDFONTPATH=' realpath('.'));

// Name the font to be used (note the lack of the .ttf extension)
$font 'SomeFont';
?>

Hinweis:

Note that open_basedir does not apply to fontfile.

text

Die UTF8 kodierte Text-Zeichenkette.

Kann dezimale numerische Zeichen-Entity-Referenzen (in der Form &#8364;) enthalten, um Zeichen außerhalb des ASCII-Bereiches zu referenzieren. Das hexadizimale Format (wie &#xA9;) wird ebenfalls unterstützt. UTF-8 kodierte Zeichenkette können direkt übergeben werden.

Benannte Zeichen-Entity-Referenzen, wie &copy;, 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
5.2.0 Es ist nun erlaubt hexadezimale numerische Zeichen-Entity-Referenzen in text anzugeben.

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(40030);

// Erzeuge einige Farben
$white imagecolorallocate($im255255255);
$grey imagecolorallocate($im128128128);
$black imagecolorallocate($im000);
imagefilledrectangle($im0039929$white);

// Der zu zeichnende Text
$text 'Testing...';
// Bei Bedarf ist der Pfad anzupassen
$font 'arial.ttf';

// Füge etwas Schatten zum Text hinzu
imagettftext($im2001121$grey$font$text);

// Füge den Text hinzu
imagettftext($im2001020$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:

Ausgabe des Beispiels : imagettftext()

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