📅  最后修改于: 2023-12-03 14:45:17.027000             🧑  作者: Mango
imageftbbox()
函数是在图像上使用 TrueType 字体所需的最小矩形空间。 它可以计算字符串宽度和高度以及字符串中每个字符的 X 和 Y 位置。
array imageftbbox(float $size, float $angle, string $fontfile, string $text, array $extrainfo = array())
imageftbbox()
函数接受 5 个参数:
$size
(必选):字体大小。$angle
(必选):文本角度,可以是正数或负数,单位为度。$fontfile
(必选):TrueType 字体文件的路径。$text
(必选):要写入图像的文字。$extrainfo
(可选):可选参数数组,包含以下键:0
)。imageftbbox()
函数返回一个包含文本盒子的数组。 数组的元素如下所示:
$bbox[0]
:左上角 x 轴坐标。$bbox[1]
:左上角 y 轴坐标。$bbox[2]
:右下角 x 轴坐标。$bbox[3]
:右下角 y 轴坐标。$bbox[4]
:左下角 y 轴坐标。$bbox[5]
:字符宽度 (数组中的最后一个元素)。以下示例展示了如何创建一个包含 PHP、MySQL 和 GD 库的图像,并在其中写入文本。
// 创建一个画布
$image = imagecreatetruecolor(400, 150);
// 分配颜色
$white = imagecolorallocate($image, 255, 255, 255);
$gray = imagecolorallocate($image, 128, 128, 128);
$black = imagecolorallocate($image, 0, 0, 0);
// 填充背景
imagefilledrectangle($image, 0, 0, 399, 149, $white);
// 文本内容
$text = 'PHP, MySQL, and GD library';
// TrueType 字体文件的路径
$font = 'arial.ttf';
// 计算文本框的大小
$box = imageftbbox(20, 0, $font, $text);
// 计算文本在画布中的 x 和 y 坐标
$x = (int)((400 - $box[2]) / 2);
$y = (int)((150 - $box[5]) / 2) + 20;
// 写入文本到画布上
imagettftext($image, 20, 0, $x, $y, $black, $font, $text);
// 输出图像并释放内存
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
该示例代码会生成以下图像: