function make_rand($length="32"){//验证码文字生成函数

$str="abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz1234567890";

$result="";

for($i=0;$i

$num[$i]=rand(0,61);

$result.=$str[$num[$i]];

}

return $result;

}

$checkcode = make_rand(5);

$im_x=160;

$im_y=32;

function make_crand($length="5") {

$string = '';

for($i=0;$i

$string .= chr(rand(0xb0,0xf7)).chr(rand(0xa1,0xfe));

}

return $string;

}

function getauthimage($text , $im_x = 230 , $im_y = 32) {

$im = imagecreatetruecolor($im_x,$im_y);

$text_c = imagecolorallocate($im, mt_rand(0,100),mt_rand(0,100),mt_rand(0,100));

$tmpc0=mt_rand(100,255);

$tmpc1=mt_rand(100,255);

$tmpc2=mt_rand(100,255);

$buttum_c = imagecolorallocate($im,$tmpc0,$tmpc1,$tmpc2);

imagefill($im, 16, 13, $buttum_c);

//echo $text;

$font = 'c://windows//fonts//simsun.ttc';

//echo strlen($text);

$text=iconv("gb2312","utf-8",$text);

//echo mb_strlen($text,"utf-8");

for ($i=0;$i

{

$tmp =mb_substr($text,$i,1,"utf-8");

$array = array(-1,0,1);

$p = array_rand($array);

$an = $array[$p]*mt_rand(1,9);//角度

$size = 20;

imagettftext($im,$size,$an,10+$i*$size*2,25,$text_c,$font,$tmp);

}

$distortion_im = imagecreatetruecolor ($im_x, $im_y);

imagefill($distortion_im, 16, 13, $buttum_c);

for ( $i=0; $i

for ( $j=0; $j

$rgb = imagecolorat($im, $i , $j);

if( (int)($i+20+sin($j/$im_y*2*m_pi)*10) <= imagesx($distortion_im) && (int)($i+20+sin($j/$im_y*2*m_pi)*10) >=0 ) {

imagesetpixel ($distortion_im, (int)($i+10+sin($j/$im_y*2*m_pi-m_pi*0.5)*3) , $j , $rgb);

}

}

}

//加入干扰象素;

$count = 600;//干扰像素的数量

for($i=0; $i

$randcolor = imagecolorallocate($distortion_im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));

imagesetpixel($distortion_im, mt_rand()%$im_x , mt_rand()%$im_y , $randcolor);

}

$line_c=5;

//imageline

for($i=0; $i < $line_c; $i++) {

$linecolor = imagecolorallocate($distortion_im, 17, 158, 20);

$lefty = mt_rand(1, $im_x-1);

$righty = mt_rand(1, $im_y-1);

imageline($distortion_im, 0, $lefty, imagesx($distortion_im), $righty, $linecolor);

}

header("content-type: image/png");

//以png格式将图像输出到浏览器或文件;

//imagepng($im);

imagepng($distortion_im);

//销毁一图像,释放与image关联的内存;

imagedestroy($distortion_im);

imagedestroy($im);

}

?>

用法示例如下:

getauthimage(make_crand(5));

?>

希望与广大网友互动??

点此进行留言吧!

php图片旋转验证码,如何用php生成扭曲及旋转的验证码图片相关推荐

  1. php图形验证码颜色,PHP实现生成带背景的图形验证码功能

    本文实例讲述了PHP实现生成带背景的图形验证码功能.分享给大家供大家参考,具体如下: 以前我们利用php生成的都是无背景或同一色彩背景的验证码了,但这种验证容易给机器识别了,这里就来介绍一些生成带背景 ...

  2. JAVA梅森旋转随机算法_伪随机数生成算法-梅森旋转(Mersenne Twister/MT)

    今天主要是来研究梅森旋转算法,它是用来产生伪随机数的,实际上产生伪随机数的方法有很多种,比如线性同余法, 平方取中法等等.但是这些方法产生的随机数质量往往不是很高,而今天介绍的梅森旋转算法可以产生高质 ...

  3. Linux图片马PHP,php 根据请求生成缩略图片保存到Linux图片服务器的代码

    这个功能,有点类似图片站点分离的操作,就是将图片单独架设在一台服务器上,有兴趣的朋友,好好研究下吧. 代码如下: 复制代码 代码示例: /** * 缩略图片 Linux图片服务器 * edit www ...

  4. unity如何实现图片透视_如何用nginx实现防盗链?保护网站图片、视频。

    什么是防盗链? 有时候,当我们在网站上浏览图片时会遇到图片打不开,并看到提示:"403权限禁止".这可能是正在浏览的这个网站用到的图片在盗用别的网站图片,而被盗用的网站采用了防盗链 ...

  5. python将图片保存到excel_使用Python导出Excel图表以及导出为图片的方法

    本篇讲下如何使用纯python代码将excel 中的图表导出为图片.这里需要使用的模块有win32com.pythoncom模块. 网上经查询有人已经写好的模块pyxlchart,具体代码如下: fr ...

  6. 随机数字图片验证码的原理、生成和破解

    http://sxdt.h.baike.com/article-1307487.html 随机数字图片验证码的原理.生成和破解 2013-10-21 10:27:49 本文行家:jdsongss 随机 ...

  7. JAVA使用barcode4j生成条形码和二维码图片以及带logo的二维码,验证码图片

    二维码 1.Maven引入barcode4j依赖 <!-- 条形码生成 --><dependency><groupId>net.sf.barcode4j</g ...

  8. 【图片验证码识别】使用深度学习来 识别captcha 验证码

    谷歌图形验证码在AI 面前已经形同虚设,所以谷歌宣布退出验证码服务,这是为什么呢? 以下文章也许可以解释原因 本文会通过 Keras 搭建一个深度卷积神经网络来识别 captcha 验证码,建议使用显 ...

  9. 动态生成能够局部刷新的验证码【AJAX技术】---看了不懂赔你钱

    在开发JavaWeb应用时,动态生成能够局部刷新的验证码是一项必须的功能,在这里我们将会详细的讲解如何实现这一功能. 一.涉及技术 该功能需要用到AJAX异步传输技术,这样能保证在点击"看不 ...

最新文章

  1. 一站式Web开发套件BeetleX.WebFamily
  2. 求给定精度的简单交错序列部分和(c语言)
  3. 紫色大气Bootstrap网站模板
  4. php从注册列表卸载,MSSQL_彻底删除SQL Server注册表的方法,一般在卸载完数据库时,大家 - phpStudy...
  5. 如何优雅地用ARM开发板搭建服务器
  6. JVM-常用内存调优参数总结
  7. 华为设备IS-IS路由控制原理与实验
  8. A1089. 阶乘计算
  9. 黑暗之魂3设置无边窗口化
  10. C语言输出9 * 9口诀。
  11. 金融反欺诈常用特征处理方法
  12. Linux capability初探
  13. JedisNoReachableClusterNodeException: No reachable node in cluster
  14. IPP与Opencv配合使用
  15. 《电子工艺训练》课程笔记(四)————印制电路板设计
  16. 【生信分析】clusterProfiler: universal enrichment tool for functional and comparative study(3)
  17. 读书笔记 -《Python 黑帽子》 ( 三 )
  18. Vue的滚动条-vue-happy-scroll用法
  19. 处理RAW格式的图像,需要什么软件?
  20. Windows专用网络链接实现局域网文件共享

热门文章

  1. 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - D.蛇形填数
  2. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1108:向量点积计算
  3. Java 文件操作 File 及 RandomAccessFile
  4. ubuntu下vim的命令及使用方法
  5. python测试函数
  6. ROS探索总结(五)——创建简单的机器人模型smartcar
  7. 【STM32】FreeRTOS中断示例
  8. docker harbor 域名_超详细的搭建docker私服Harbor教程
  9. golang中如何抓取panic让程序正常退出
  10. phoenix客户端操作hbase已经存在的表