imageftbbox

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imageftbbox Определяет границы прямоугольного обрамления для текста, который библиотека freetype2 выводит на экран путём рендеринга шрифта

Описание

imageftbbox(
    float $size,
    float $angle,
    string $font_filename,
    string $string,
    array $options = []
): array|false

Функция рассчитывает и возвращает обрамляющую рамку в пикселях для текста, который выводится на экран библиотекой 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

Возможные ключи массива 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)

Смотрите также

  • imagefttext() - Наносит текст на изображение путём рендеринга шрифта библиотекой FreeType 2
  • imagettfbbox() - Определяет границы прямоугольного обрамления для текста, который библиотека freetype2 выводит на экран путём рендеринга шрифта