imageftbbox
(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)
imageftbbox — 通过 freetype2 使用字体给出文本的边界框
说明
imageftbbox(
float
float
string
string
array
): array|false
float
$size,float
$angle,string
$font_filename,string
$string,array
$options = []): array|false
此函数计算并返回 FreeType 文本的边界框(以像素为单位)。
注意:
在 PHP 8.0.0 之前,imageftbbox() 是 imagettfbbox() 的扩展变体,它还支持
options。自 PHP 8.0.0 起,imagettfbbox() 是 imageftbbox() 的别名。
参数
size-
字体的尺寸,单位:点(磅)。
angle-
测量的
string的角度(以度为单位)。 font_filename-
TrueType 字体文件的名称(可以是 URL)。根据 PHP 使用的 GD 库的版本,可能会尝试搜索没有以“/”开头并会在末尾追加“.ttf”的文件名,并沿着库定义的字体路径搜索。
string-
要测量的字符串。
options-
options可能的数组索引键 类型 含义 linespacingfloat 定义绘制行距
返回值
imageftbbox() 返回包含 8 个元素的数组,代表构成文本边界框的四个点:
| 0 | 左下角,X 坐标 |
| 1 | 左下角,Y 坐标 |
| 2 | 右下角,X 坐标 |
| 3 | 右下角,Y 坐标 |
| 4 | 右上角,X 坐标 |
| 5 | 右上角, Y 坐标 |
| 6 | 左上角,X 坐标 |
| 7 | 左上角,Y 坐标 |
无论 angle 如何,这些点都是相对于
text,因此“左上角”意味着在左上角水平地看到文本。
失败时,返回 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, 'The PHP Documentation Group');
// 这是 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, 'The PHP Documentation Group');
// 输出到浏览器
header('Content-Type: image/png');
imagepng($im);
?>注释
注意: 此函数仅在 PHP 编译时加入 freetype 支持时有效(--with-freetype-dir=DIR)。
参见
- imagefttext() - 使用 FreeType 2 字体将文本写入图像
- imagettfbbox() - 取得使用 TrueType 字体的文本的边界框