LaravelConf Taiwan 2020 CFP Started

imagettfbbox

(PHP 4, PHP 5, PHP 7)

imagettfbboxGive the bounding box of a text using TrueType fonts

Descrierea

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

This function calculates and returns the bounding box in pixels for a TrueType text.

Notă:

imageftbbox() is an extended variant of imagettfbbox() which additionally supports the extrainfo.

Parametri

size

Dimensiunea font-ului în unități de puncte.

angle

Angle in degrees in which text will be measured.

fontfile

Calea către fontul TrueType pe care doriți să-l utilizați.

În dependență de versiunea bibliotecii GD utilizate de PHP, atunci când parametrul fontfile nu începe cu un / la numele fișierului va fi adăugat .ttf și biblioteca va încerca să caute acest fișier în căile către fonturi definite în librărie.

La utilizarea versiunilor bibliotecii GD mai joase de 2.0.18, caracterul spațiu era utilizat ca separator al căilor pentru diferite fișiere cu fonturi, dar nu punctul și virgula. Utilizarea neintenționată a acestei facilități va rezulta în următorul avertisment: Warning: Could not find/open font. Pentru aceste versiuni afectate unica soluție este de a transfera fontul într-o cale care nu conține spații în denumire.

În multe cazuri atunci când fontul se află în același director ca și scriptul care îl utilizează, următorul truc va elimina problemele de incluziune.

<?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';
?>

Notă:

Observați că open_basedir nu se aplică la fontfile.

text

The string to be measured.

Valorile întoarse

imagettfbbox() returns an array with 8 elements representing four points making the bounding box of the text on success and FALSE on error.

key contents
0 lower left corner, X position
1 lower left corner, Y position
2 lower right corner, X position
3 lower right corner, Y position
4 upper right corner, X position
5 upper right corner, Y position
6 upper left corner, X position
7 upper left corner, Y position

The points are relative to the text regardless of the angle, so "upper left" means in the top left-hand corner seeing the text horizontally.

Exemple

Example #1 imagettfbbox() example

<?php
// Create a 300x150 image
$im imagecreatetruecolor(300150);
$black imagecolorallocate($im000);
$white imagecolorallocate($im255255255);

// Set the background to be white
imagefilledrectangle($im00299299$white);

// Path to our font file
$font './arial.ttf';

// First we create our bounding box for the first text
$bbox imagettfbbox(1045$font'Powered by PHP ' phpversion());

// This is our cordinates for X and Y
$x $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 25;
$y $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

// Write it
imagettftext($im1045$x$y$black$font'Powered by PHP ' phpversion());

// Create the next bounding box for the second text
$bbox imagettfbbox(1045$font'and Zend Engine ' zend_version());

// Set the cordinates so its next to the first text
$x $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) + 10;
$y $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

// Write it
imagettftext($im1045$x$y$black$font'and Zend Engine ' zend_version());

// Output to browser
header('Content-Type: image/png');

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

Note

Notă: Această funcție este disponibilă numai dacă PHP este compilat cu susținerea freetype (--with-freetype-dir=DIR)

A se vedea și

  • imagettftext() - Write text to the image using TrueType fonts
  • imageftbbox() - Give the bounding box of a text using fonts via freetype2

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top