所以我修改了 y 值计算方法,感觉显示效果比原来要好:
} else {
$codeY = ($this->imageH - $this->fontSize)/2 + $this->fontSize; // 这是修改后的代码,默认要求图片高度大于字体的高度。
for ($i = 0; $i < $this->length; $i++) {
$code[$i] = $this->codeSet[mt_rand(0, strlen($this->codeSet) - 1)];
$codeNX += mt_rand($this->fontSize * 1.2, $this->fontSize * 1.6);
imagettftext($this->im, $this->fontSize, mt_rand(-10, 10), $codeNX, $codeY, $this->color, $this->fontttf, $code[$i]);
}
}修改的文件:think-captcha/src/Captcha.php修改前的效果:

修改后的效果:

配置参数:
<?php
return [
// 图片高度
'imageH' => 30,
'imageW' => 100,
// 字体大小
'fontSize' => 20,
// 验证码长度(位数)
'length' => 2,
// 是否画混淆曲线
'useCurve' => false,
// 是否添加杂点
'useNoise' => false,
]; 最佳答案