php使用imagettftext()函数有干扰线但是没有文字的问题解决
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()函数有干扰线但是没有文字的问题解决的更多相关文章
- PHP生成带有干扰线的验证码,干扰点、字符倾斜
PHP生成验证码的类代码,本验证码类支持生成干扰点.干扰线等干扰像素,还可以使字符倾斜.在类中你可以定义验证码宽度.高度.长度.倾斜角度等参数,后附有用法: <?php class class_ ...
- django-simple-captcha 验证码干扰线随机点位
CAPTCHA_NOISE_FUNCTIONS = ( 'captcha.helpers.noise_null',# 设置样式 'captcha.helpers.noise_arcs',# 设置干扰线 ...
- 利用java生成带有干扰线的网页验证码图片
package imageCreate; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import j ...
- PHP用imageTtfText函数在图片上写入汉字
https://blog.csdn.net/smstong/article/details/43955705 PHP绘图,imageString()这个函数并不支持汉字的绘制.这往往会给入门者当头一棒 ...
- 利用canvas绘制带干扰线的验证码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- CSS 两边是线 中间是文字的效果
刚开始做的时候 想了一下 这个是怎么做出来的,后来在网上看到有个类似的效果,研究一下 <!DOCTYPE html> <html lang="en"> &l ...
- php 使用imagettftext()函数出问题的原因
<?php header('Content-type: image/png'); $im = imagecreatetruecolor(400, 300); //创建画布 $white = im ...
- MySQL中使用group_concat()函数数据字符过长报错的问题解决方法
最近在办公软件项目,在开发权限指标遇到一个问题:我们系统的一些逻辑处理是用存储过程实现的,但是有一天客户反馈说权限指标分配报错,查了分配的权限数据牵扯到的数据权限基础资源,没有问题.权限指标分配的存储 ...
- css 两边是线,中间文字的多种实现方法
<div class="soild_text_one"> <fieldset> <legend>历史活动一</legend> < ...
随机推荐
- python3偏函数
Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function).要注意,这里的偏函数和数学意义上的偏函数不一样. 通过设定参数的默认值,可以降低函数调 ...
- undefined reference to `BN_new'
出现如下错误 undefined reference to `BN_CTX_new' undefined reference to `BN_new' undefined reference to `B ...
- Nginx配置实验反向代理
l 实验要求 浏览器访问 8083.mine.com:8081 地址,(Nginx端口是8081)通过Nginx服务器反向代理监听请求,将请求转发到tomcat服务器上,实现真正内容的访问. l ...
- 网络协议SNMP分析技术
内容一: 1. 打开Ethereal软件开始抓包, 输入命令: snmputil get [目标主机IP地址] public .1.3.6.1.2.1.1.2.0 停止抓包.对SNMP包进行过滤. 2 ...
- JMETER 计数器的表现
1.计数器在线程中表现(虚拟用户). 线程组使用4个线程即4个虚拟用户. 如果不勾选每用户独立跟踪计数器. 那么这个计数器将会累加4次. 计算结果为7. 勾选的情况. 这里我们可以看到 index 一 ...
- [PHP] substr占用内存谨慎使用
在下面的场景中使用substr的时候, 有时候会报超出内存fatal error ,当curl读取的内容过大的时候 $header_size = curl_getinfo($curl_handle, ...
- C语言的常量
#include<stdio.h> int main(void) { ; //定义一个常量,不能被修改,可以赋初值:常量的标识符建议使用大写字母 ; //初始化 printf(" ...
- int数据类型的最大数
/* 32位系统 */ #include <stdio.h> int main() { , b = ; ) { ; } printf(); ; do { n = n / ; b++; } ...
- 201871010131-张兴盼《面向对象程序设计(java)》第十六周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
- python字符串的split replace strip
split replace strip是字符串中内置的三个函数,作用分别是分割 替换 去空格 0x01:split split(a,b):用指定的字符(a)分割字符串,可以限制分割的次数(b),返回一 ...