这是一个用于创建对齐字符串的简单函数,该字符串被裁剪以匹配 $x1 和 $x2 之间的空间。
<?php
function imagestringcutted($img,$font,$y,$x1,$x2,$text,$color,$align="center") {
$fontwidth = imagefontwidth($font);
$fullwidth = strlen($text) * $fontwidth;
$maxwidth = $x2-$x1;
$targetwidth = $fullwidth-(4*$fontwidth);
if($fullwidth > $maxwidth) {
for($i = 0; $i < strlen($text) AND ((strlen($text)-($i-4))*$fontwidth) > $targetwidth ;$i++) { }
$text = substr($text,0,(strlen($text)-$i)-4)."...";
}
if($align == "left") imagestring($img,$font,$x1,$y,$text,$color);
elseif($align == "right") imagestring($img,$font,$x2 - ((strlen($text) * $fontwidth)),$y,$text,$color);
else imagestring($img,$font,($x2-$x1)/ 2 - strlen($text) * $fontwidth / 2,$y,$text,$color);
}
?>
用法
<?php
imagestringcutted($img,$font,$y,$x1,$x2,$text,$color,$align);
?>
将在 $img 上创建字符串 $text,如果它太长而无法匹配 $x1 和 $2 之间,则会将其裁剪,使用字体 $font 和颜色 $color 在高度 $y 处,并对齐到 $align。
希望它能帮助一些人。
抱歉,我的英语不好。