(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)
imageftbbox — Определяет границы прямоугольного обрамления для текста, который библиотека freetype2 выводит на экран путём рендеринга шрифта
$size
,$angle
,$font_filename
,$string
,$options
= []Функция рассчитывает и возвращает обрамляющую рамку в пикселях для текста, который выводится на экран библиотекой FreeType.
Замечание:
До PHP 8.0.0 функция imageftbbox() была расширенной версией функции imagettfbbox(), которая дополнительно поддерживала параметр
options
. Начиная с 8.0.0 функция imagettfbbox() стала псевдонимом функции imageftbbox().
size
Размер шрифта в типографских пунктах.
angle
Угол в градусах, под которым функция измерит значение аргумента string
.
font_filename
Название файла TrueType-шрифта в виде локального пути или URL-адреса. В зависимости от версии библиотеки GD, с которой работает PHP, функция попытается найти файлы, названия которых не начинаются с символа '/', путём добавления к названию файла расширения '.ttf' и поиска по пути к шрифту, который определяет библиотека.
string
Строка, которую требуется измерить.
options
Ключ | Тип | Значение |
---|---|---|
linespacing |
float | Определяет межстрочный интервал при отрисовке |
Функция imageftbbox() возвращает массив из 8 элементов, которые представляют координаты четырёх точек — вершин рамки обрамления текста:
0 | нижний левый угол, координата X |
1 | нижний левый угол, координата Y |
2 | нижний правый угол, координата X |
3 | нижний правый угол, координата Y |
4 | верхний правый угол, координата X |
5 | верхний правый угол, координата Y |
6 | верхний левый угол, координата X |
7 | верхний левый угол, координата Y |
Точки располагаются относительно текста независимо
от угла angle
, поэтому «верхний левый» обозначает верхний
левый угол, если смотреть на текст горизонтально.
Функция возвращает false
, если возникла ошибка.
Пример #1 Пример определения границ обрамления функцией imageftbbox()
<?php
// Создание изображения размером 300x150
$im = imagecreatetruecolor(300, 150);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
// Установка белого фона
imagefilledrectangle($im, 0, 0, 299, 299, $white);
// Установка пути к файлу шрифта
$font = './arial.ttf';
// Создание рамки вокруг текста
$bbox = imageftbbox(10, 0, $font, 'Группа документирования языка PHP');
// Установка координат для осей X и Y
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 5;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;
imagefttext($im, 10, 0, $x, $y, $black, $font, 'Группа документирования языка PHP');
// Вывод в браузер
header('Content-Type: image/png');
imagepng($im);
?>
Замечание: Эта функция доступна только в случае, если PHP был скомпилирован с поддержкой freetype (--with-freetype-dir=DIR)