array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'uk', ), 'this' => array ( 0 => 'function.imagettfbbox.php', 1 => 'imagettfbbox', 2 => 'Give the bounding box of a text using TrueType fonts', ), 'up' => array ( 0 => 'ref.image.php', 1 => 'Функції GD та Image', ), 'prev' => array ( 0 => 'function.imagetruecolortopalette.php', 1 => 'imagetruecolortopalette', ), 'next' => array ( 0 => 'function.imagettftext.php', 1 => 'imagettftext', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'en', 'path' => 'reference/image/functions/imagettfbbox.xml', ), 'history' => array ( ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); contributors($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
imagettfbbox — Give the bounding box of a text using TrueType fonts
$size
,$angle
,$font_filename
,$string
,$options
= []This function calculates and returns the bounding box in pixels for a TrueType text.
Зауваження:
Prior to PHP 8.0.0, imageftbbox() was an extended variant of imagettfbbox() which additionally supported the
extrainfo
. As of PHP 8.0.0, imagettfbbox() is an alias of imageftbbox().
size
Розмір шрифту в пунктах.
angle
Angle in degrees in which string
will be measured.
fontfile
Спосіб використання обраного шрифту TrueType.
Залежно від версії бібліотеки GD, яку використовує PHP, якщо
fontfile
не починається з /
, то
до назви файлу буде дописано .ttf
і
бібліотека шукатиме цей файл у визначеній нею теці.
Використовуючи версії бібліотеки GD, раніші за 2.0.18, "розділювачем
шляхів" для декількох файлів шрифтів буде символ
пропуску
, а не крапка з комою. Ненавмисне використання
цієї функції призведе до попередження: Warning: Could not
find/open font
. Єдиним рішенням для цих пошкоджених версій є
переміщення файлу шрифту в шлях, що не містить в назві пропусків.
В багатьох випадках, коли шрифт знаходиться в тій самій теці, що і скрипт, який використовує його, наступний трюк позбавить від будь-яких проблем з його підключенням.
<?php
// Встановити змінну середовища для GD
putenv('GDFONTPATH=' . realpath('.'));
// Назва шрифту, що буде використано (увага — відсутнє розширення .ttf)
$font = 'SomeFont';
?>
Зауваження:
Варто зауважити, що open_basedir не застосовується до
fontfile
.
string
The string to be measured.
options
Same as in imagettftext().
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.
Версія | Опис |
---|---|
8.0.0 |
The options has been added.
|
Приклад #1 imagettfbbox() example
<?php
// Create a 300x150 image
$im = imagecreatetruecolor(300, 150);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
// Set the background to be white
imagefilledrectangle($im, 0, 0, 299, 299, $white);
// Path to our font file
$font = './arial.ttf';
// First we create our bounding box for the first text
$bbox = imagettfbbox(10, 45, $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($im, 10, 45, $x, $y, $black, $font, 'Powered by PHP ' . phpversion());
// Create the next bounding box for the second text
$bbox = imagettfbbox(10, 45, $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($im, 10, 45, $x, $y, $black, $font, 'and Zend Engine ' . zend_version());
// Output to browser
header('Content-Type: image/png');
imagepng($im);
?>
Зауваження: Ця функція доступна тільки, якщо PHP скомпільовано з підтримкою freetype (--with-freetype-dir=DIR)