📜  PHP | imageftbbox()函数(1)

📅  最后修改于: 2023-12-03 14:45:17.027000             🧑  作者: Mango

PHP | imageftbbox() 函数

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(可选):可选参数数组,包含以下键:
    • "linespacing":行间距(默认为 0)。
    • "charmap":字符映射数组(默认为空数组)。
返回值

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);

该示例代码会生成以下图像:

示例图像