长沙PHP培训
达内长沙芙蓉路中心

15017569023

热门课程

PHP图形操作之生成图像验证码

  • 时间:2016-10-28 17:47
  • 发布:长沙达内php培训学校
  • 来源:PHP教程

长沙PHP培训机构的老师发现,简单的验证码其实就是在图片中输出了几个字符,通过imagestring函数就能实现。

但是在处理上,为了使验证码更加的安全,防止其他程序自动识别,因此常常需要对验证码进行一些干扰处理,通常会采用绘制一些噪点,干扰线段,对输出的字符进行倾斜、扭曲等操作。

可以使用imagesetpixel绘制点来实现噪点干扰,但是只绘制一个点的作用不大,因此这里常常会使用循环进行随机绘制。

例子:

<?php

$img = imagecreatetruecolor(100, 40);

$black = imagecolorallocate($img, 0x00, 0x00, 0x00);

$green = imagecolorallocate($img, 0x00, 0xFF, 0x00);

$white = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);

imagefill($img,0,0,$white);

//生成随机的验证码

$code = '';

for($i = 0; $i < 4; $i++) { //4位数的验证码

$code .= rand(0, 9);

}

imagestring($img, 5, 10, 10, $code, $black);

//加入噪点干扰

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

imagesetpixel($img, rand(0, 100) , rand(0, 100) , $black); //imagesetpixel—画一个单一像素,语法: bool imagesetpixel ( resource $image , int $x , int $y , int $color )

imagesetpixel($img, rand(0, 100) , rand(0, 100) , $green);

}

//输出验证码

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

imagepng($img); //以PNG格式将图像输出到浏览器或文件

imagedestroy($img); //图像处理完成后,使用imagedestroy()指令销毁图像资源以释放内存,虽然该函数不是必须的,但使用它是一个好习惯。

?>

了解详情请登陆长沙达内PHP培训官网(cs.php.tedu.cn)!

上一篇:ThinkPHP的URL实现SEO效果
下一篇:php中类和对象的操作

马上预约三天免费体验课

姓名:

电话:

PHP基础:PHP面向对象

PHP Web实时消息后台服务器推送技术

ThinkPHP5项目目录规划实践

php使用函数读取大文件效率分析

选择城市和中心
贵州省

广西省

海南省