(PHP 4, PHP 5, PHP 7)
imagettfbbox — Ermittle das umgebende Rechteck eines Textes unter Verwendung von True-Type Schriftarten
$size
, float $angle
, string $fontfile
, string $text
) : arrayDiese Funktion errechnet die Größe des Bereichs für eine True-Type-Textausgabe.
Hinweis:
imageftbbox() ist eine erweiterte Variante von imagettfbbox(), die zusätzlich den
extrainfo
Parameter unterstützt.
size
Die Schriftgröße in Punkten.
angle
Der Winkel in Grad in dem text
vermessen wird.
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 zu vermessende Zeichenkette.
imagettfbbox() gibt im Erfolgsfall ein Array mit 8
Elementen zurück, die die vier Punkte des umgebenden Rechtecks des Texts
repräsentieren, und FALSE
im Fehlerfall.
Schlüssel | Wert |
---|---|
0 | untere linke Ecke, x-Koordinate |
1 | untere linke Ecke, y-Koordinate |
2 | untere rechte Ecke, x-Koordinate |
3 | untere rechte Ecke, y-Koordinate |
4 | obere rechte Ecke, x-Koordinate |
5 | obere rechte Ecke, y-Koordinate |
6 | obere linke Ecke, x-Koordinate |
7 | obere linke Ecke, y-Koordinate |
Die Punkt sind relativ zum Text, unabhängig vom
angle
, so dass "obere linke Ecke" bedeutet "in der
oberen linken Ecke, wenn der Text horizontal gesehen wird".
Beispiel #1 imagettfbbox() Beispiel
<?php
// Erzeuge ein 300x150 Bild
$im = imagecreatetruecolor(300, 150);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
// Weißer Hintergrund
imagefilledrectangle($im, 0, 0, 299, 299, $white);
// Pfad der Schriftartdatei
$font = './arial.ttf';
// Zunächst ermitteln wir das umgebende Rechteck für den ersten Text
$bbox = imagettfbbox(10, 45, $font, 'Powered by PHP ' . phpversion());
// Dies sind die x- und y-Koordinaten
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 25;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;
// Schreibe
imagettftext($im, 10, 45, $x, $y, $black, $font, 'Powered by PHP ' . phpversion());
// Ermittle das umgebende Rechteck für den zweiten Text
$bbox = imagettfbbox(10, 45, $font, 'and Zend Engine ' . zend_version());
// Berechne die Koordinaten, so dass es neben dem ersten Text ist
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) + 10;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;
// Schreibe
imagettftext($im, 10, 45, $x, $y, $black, $font, 'and Zend Engine ' . zend_version());
// Ausgabe an den Browser
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>
Hinweis: Diese Funktion ist nur verfügbar wenn PHP mit Freetype unterstützung (--with-freetype-dir=DIR ) kompiliert wurde