imagefontheight

(PHP 4, PHP 5, PHP 7, PHP 8)

imagefontheight获取字体高度

描述

imagefontheight(GdFont|int $font): int

返回指定字体中字符的像素高度。

参数

font

可以是 1、2、3、4、5,表示 latin2 编码的内置字体(其中数字越大,字体越大),或者 GdFont 实例,由 imageloadfont() 返回。

返回值

返回字体的像素高度。

变更日志

版本 描述
8.1.0 font 参数现在可以接受 GdFont 实例和 int;之前只接受 int

示例

示例 #1 在内置字体上使用 imagefontheight()

<?php
echo 'Font height: ' . imagefontheight(4);
?>

上面的示例将输出类似于以下内容

Font height: 16

示例 #2 将 imagefontheight()imageloadfont() 结合使用

<?php
// 加载一个 .gdf 字体
$font = imageloadfont('anonymous.gdf');

echo
'Font height: ' . imagefontheight($font);
?>

上面的示例将输出类似于以下内容

Font height: 43

参见

添加注释

用户贡献的注释 1 个注释

dev at numist dot net
19 年前
此库函数对于仅包含文本的可变大小图像非常有用,例如我用于输出导致缩略图生成器致命错误的累积错误消息的函数

<?php
function errimg($error) {
// $error 是一个包含错误消息的数组,每个消息占用一行
// 初始化
$font_size = 2;
$text_width = imagefontwidth($font_size);
$text_height = imagefontheight($font_size);
$width = 0;
// 图像的高度将是 $error 中的项目数量
$height = count($error);

// 这将获取最长字符串的长度(以字符为单位),以确定
// 输出图像的宽度
for($x = 0; $x < count($error); $x++) {
if(
strlen($error[$x]) > $width) {
$width = strlen($error[$x]);
}
}

// 接下来我们将高度和宽度转换为像素值
$width = $width * $text_width;
$height = $height * $text_height;

// 创建一个大小足以容纳文本的图像,以及两行和
// 两列额外的空间用于边框
$im = imagecreatetruecolor($width + ( 2 * $text_width ),
$height + ( 2 * $text_height ) );
if(
$im) {
// 图像创建成功
$text_color = imagecolorallocate($im, 233, 14, 91);
// 此循环将错误消息输出到图像
for($x = 0; $x < count($error); $x++) {
// imagestring(image, font, x, y, msg, color);
imagestring($im, $font_size, $text_width,
$text_height + $x * $text_height, $error[$x],
$text_color);
}
// 现在,使用你最喜欢的 image* 函数呈现你的图像
//(例如 imagejpeg)
out($im, array(), $error);
} else {
// 图像创建失败,所以只需将数组与额外的错误一起转储
$error[] = "Is GD Installed?";
die(
var_dump($error));
}
}
?>

该函数期望传入一个包含错误消息的数组,然后输出一个包含数组内容的图像。如果你的代码包含在一个 html 页面中,该页面将在图像无法正确渲染时显示 rexes,这将特别有用。

此函数以图像形式显示数组,索引 0 在顶部,最高索引在底部。

但是,你必须自己编写 out(),请参阅 imagejpeg、imagepng 等,了解如何编写一个不错的输出函数。
To Top