Получение параметров рамки обрамляющей текст написанный TrueType шрифтом


(PHP 4, PHP 5)

imagettfbbox Получение параметров рамки обрамляющей текст написанный TrueType шрифтом

Описание

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

Эта функция расчитывает и возвращает параметры рамки вокруг TrueType текста в пикселах.

Список параметров

size

Размер шрифта.

Замечание: В GD 1 измеряется в пикселах. В GD 2 измеряется в точках.

angle

Угол в градусах в котором будет измерен text.

fontfile

Имя файла TrueType шрифта (может быть URL). В зависимости от версии GD библиотеки функция может попытаться найти файл без '/' в начале путем добавления '.ttf' в конец имени файла. Поиск при этом будет производиться в директории, заданной в конфигурации библиотеки.

text

Измеряемая строка.

Возвращаемые значения

imagettfbbox() возвращает массив из 8 элементов представляющих координаты четырех точек - вершин рамки вокруг текста. В случае ошибки функция вернет FALSE.

ключ содержимое
0 нижний левый угол, X координата
1 нижний левый угол, Y координата
2 нижний правый угол, X координата
3 нижний правый угол, Y координата
4 верхний правый угол, X координата
5 верхний правый угол, Y координата
6 верхний левый угол, X координата
7 верхний левый угол, Y координата

Точки расчитаны относительно текста text и независимо от угла angle. То есть "верхний левый" означает верхний левый угол, если смотреть на текст горизонтально.

Примеры

Пример #1 Пример использования imagettfbbox()

<?php
// создание изображения 300x150 
$im imagecreatetruecolor(300150);
$black imagecolorallocate($im000);
$white imagecolorallocate($im255255255);

// Белый фон
imagefilledrectangle($im00299299$white);

// Путь к файлу шрифта
$font './arial.ttf';

// создаем рамку для текста
$bbox imagettfbbox(1045$font'Powered by PHP ' phpversion());

// наши координаты X и Y
$x $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 25;
$y $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

// Пишем текст
imagettftext($im1045$x$y$black$font'Powered by PHP ' phpversion());

// создаем другую рамку для другого текста
$bbox imagettfbbox(1045$font'and Zend Engine ' zend_version());

// задаем координаты так, чтобы текст шел сразу за первой надписью
$x $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) + 10;
$y $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

// Пишем вторую надпись
imagettftext($im1045$x$y$black$font'and Zend Engine ' zend_version());

// Вывод в броузер
header('Content-Type: image/png');

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

Примечания

Замечание:

Для работы функции необходимо наличие библиотек GD и » FreeType.

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

  • imagettftext() - Рисование текста на изображении шрифтом TrueType