imagettfbbox

(PHP 4, PHP 5, PHP 7)

imagettfbbox Ermittle das umgebende Rechteck eines Textes unter Verwendung von True-Type Schriftarten

Beschreibung

imagettfbbox ( float $size , float $angle , string $fontfile , string $text ) : array

Diese 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.

Parameter-Liste

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.

Rückgabewerte

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".

Beispiele

Beispiel #1 imagettfbbox() Beispiel

<?php
// Erzeuge ein 300x150 Bild
$im imagecreatetruecolor(300150);
$black imagecolorallocate($im000);
$white imagecolorallocate($im255255255);

// Weißer Hintergrund
imagefilledrectangle($im00299299$white);

// Pfad der Schriftartdatei
$font './arial.ttf';

// Zunächst ermitteln wir das umgebende Rechteck für den ersten Text
$bbox imagettfbbox(1045$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($im1045$x$y$black$font'Powered by PHP ' phpversion());

// Ermittle das umgebende Rechteck für den zweiten Text
$bbox imagettfbbox(1045$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($im1045$x$y$black$font'and Zend Engine ' zend_version());

// Ausgabe an den Browser
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Anmerkungen

Hinweis: Diese Funktion ist nur verfügbar wenn PHP mit Freetype unterstützung (--with-freetype-dir=DIR ) kompiliert wurde

Siehe auch

  • imagettftext() - Schreibe Text ins Bild unter Verwendung von True-Type-Schriftarten
  • imageftbbox() - Give the bounding box of a text using fonts via freetype2