public function code()
{ //主要参数
if($font_size == 0) $font_size = 20;
if($img_width == 0) $img_width = 110;
if($img_height == 0) $img_height = 50;
if($word_type == 0) $word_type = 3; // 1:数字 2:英文 3:混合
$font_file = 'E:\phpStudy\PHPTutorial\WWW\thinkphp_3.2.3_full\Application\Home\Controller\SIDESHOW.TTF';//字体的路径 //创建图片,并设置背景色
$im = @imagecreate($img_width, $img_height);
imagecolorallocate($im, 192,192,192); //获取随机字符
if($word_type == 1) {
$verifyCode = implode('', range(2, 9));
}elseif ($word_type == 2) {
$verifyCode = implode('', range('A', 'Z'));
}else{
$verifyCode = implode('', array_merge(range(2, 9),range('A', 'Z')));
$verifyCode = str_replace(array('I','O'), array('P','N'), $verifyCode);
}
//打乱字符串
$verifyCode = str_shuffle($verifyCode);
$rndstring = substr($verifyCode,0,4);
//echo $rndstring;exit; $rndcodelen = strlen($rndstring); //干扰线
for($i = 0; $i < 5; $i++) {
$color = imagecolorallocate($im, 0, 0, 0);
imageline($im, rand(0, $img_width), rand(0, $img_height), rand(0, $img_width), rand(0, $img_height), $color);
} //画边框
//$bordercolor = imagecolorallocate($im, 0, 0, 0);
//imagerectangle($im, 0, 0, $img_width-1, $img_height-1, $bordercolor); //输出文字
for($i = 0;$i < $rndcodelen;$i++){
$rndstring[$i] = strtoupper($rndstring[$i]);
$c_fontColor = imagecolorallocate($im, 0, 0, 0);
$y_pos = $i == 0 ? 10 : $i * ($font_size + 8);
$c = mt_rand(0, 15);
imagettftext($im, $font_size, $c, $y_pos, 35, $c_fontColor, $font_file, $rndstring[$i]);
}
header("Pragma:no-cache\r\n");
header("Cache-Control:no-cache\r\n");
header("Expires:0\r\n");
if(function_exists("imagejpeg")){
header("content-type:image/jpeg\r\n");
imagejpeg($im);
}else{
header("content-type:image/png\r\n");
imagepng($im);
}
imagedestroy($im);
exit();
}

生成的是这样的,原因在于字体的路径加载不道,红色部分改成自己服务器的路径

更改了字体的路径以后  就可以正常显示了

php使用imagettftext()函数有干扰线但是没有文字的问题解决的更多相关文章

  1. PHP生成带有干扰线的验证码,干扰点、字符倾斜

    PHP生成验证码的类代码,本验证码类支持生成干扰点.干扰线等干扰像素,还可以使字符倾斜.在类中你可以定义验证码宽度.高度.长度.倾斜角度等参数,后附有用法: <?php class class_ ...

  2. django-simple-captcha 验证码干扰线随机点位

    CAPTCHA_NOISE_FUNCTIONS = ( 'captcha.helpers.noise_null',# 设置样式 'captcha.helpers.noise_arcs',# 设置干扰线 ...

  3. 利用java生成带有干扰线的网页验证码图片

    package imageCreate; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import j ...

  4. PHP用imageTtfText函数在图片上写入汉字

    https://blog.csdn.net/smstong/article/details/43955705 PHP绘图,imageString()这个函数并不支持汉字的绘制.这往往会给入门者当头一棒 ...

  5. 利用canvas绘制带干扰线的验证码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. CSS 两边是线 中间是文字的效果

    刚开始做的时候 想了一下 这个是怎么做出来的,后来在网上看到有个类似的效果,研究一下 <!DOCTYPE html> <html lang="en"> &l ...

  7. php 使用imagettftext()函数出问题的原因

    <?php header('Content-type: image/png'); $im = imagecreatetruecolor(400, 300); //创建画布 $white = im ...

  8. MySQL中使用group_concat()函数数据字符过长报错的问题解决方法

    最近在办公软件项目,在开发权限指标遇到一个问题:我们系统的一些逻辑处理是用存储过程实现的,但是有一天客户反馈说权限指标分配报错,查了分配的权限数据牵扯到的数据权限基础资源,没有问题.权限指标分配的存储 ...

  9. css 两边是线,中间文字的多种实现方法

    <div class="soild_text_one"> <fieldset> <legend>历史活动一</legend> < ...

随机推荐

  1. 第九届极客大挑战——怎么又是江师傅的秘密(java反序列化)

    这道题其实是考jsp和java的,我没学过jsp,java倒是有一点了解,但是刚拿到题的时候还是看不懂java代码里的内容,所以去简单学习了下jsp(jsp教程),按照教程里的步骤搭建了eclipse ...

  2. 网络远程唤醒 WOL Magic Packet【转】

    转自:https://www.cnblogs.com/dcb3688/p/4608063.html Magic Packet Magic Packet白皮书介绍: The basic technica ...

  3. 如何fork自己的github库?

    Github上我们经常fork其他人的代码,然后经过一通魔改后弄出"自己"的东西.但是现在我遇到了这么一个需求,就是我已经公开了一个自己的库(暂且叫parent),然后我想基于自己 ...

  4. Maven 拥有三套相互独立的生命周期:clean、default、site

    table th:nth-of-type(1) { width: 70px; } table th:nth-of-type(2) { width: 100px; } 生命周期 目的 包含的阶段 cle ...

  5. Dubbo支持的注册中心(二)

    1. Zookeeper 优点:支持网络集群 缺点:稳定性受限于 Zookeeper 2. Redis 优点:对服务器环境要求较高 缺点:对服务器环境要求较高 3. Multicast 优点:去中心化 ...

  6. pagehelper超过页数仍然可以查出数据

    spring boot中pageHelper的使用 pom文件中添加 <!--pagehelper --> <dependency> <groupId>com.gi ...

  7. Spring Cloud版本 version命名说明 (Edgware)

    Spring Cloud版本 version命名说明 (Edgware)   版权声明:guofangsky 版权所有,转载不究. https://blog.csdn.net/guofangsky/a ...

  8. web控制树莓派摄像头

    首先测试摄像头保证能顺利拍照 raspistill -o a.jpg 安装flask sudo pip install flask 确认无误之后向下进行. 文件夹结构: CapPic ----stat ...

  9. 9.第一个vue-cli项目

    1.什么是vue-cli vue-cli 官方提供的一个脚手架,用于快速生成一个 vue 的项目模板; 预先定义好的目录结构及基础代码,就好比咱们在创建 Maven 项目时可以选择创建一个骨架项目,这 ...

  10. 【转】机器学习实战之K-Means算法

    一,引言 先说个K-means算法很高大上的用处,来开始新的算法学习.我们都知道每一届的美国总统大选,那叫一个竞争激烈.可以说,谁拿到了各个州尽可能多的选票,谁选举获胜的几率就会非常大.有人会说,这跟 ...