画布出现验证码

<?php
/*
 * 验证码类
 */
class Captcha
{
    //成员属性
    private $_width = 100;  //画布默认宽度
    private $_height = 25;  //画布默认的高度
    
    
    //成员方法
    //生成一张图像,并输出到浏览器
    public function makeImage()
    {
        //1. 先创建一个画布(在内存中创建一个图像资源)
        $image = imagecreatetruecolor($this->_width,$this->_height);
        
        //2. 给画布填充颜色,否则默认是黑色的很恐怖    allocate分配
        $color = imagecolorallocate($image, mt_rand(200,255), mt_rand(200,255), mt_rand(200,255));
        imagefill($image, 0, 0, $color);
        
        //创建随机的文字
        
        
        
        //4. 直接在浏览器输出这个画布
        header("Content-Type:image/png");
        //生成图像,如果增加第二个参数表示保存到本地
        imagepng($image);
        //5. 销毁内存中图像资源
        imagedestroy($image);
       }
    //产生随机文字的函数
    public function makeCode()
    {
        //随机的文字可能是数字、字母
        //range()会产生一个从a到z的字符的集合(数组)
        $upper_str = range(‘A‘,‘Z‘);
        $lower_str = range(‘a‘,‘z‘);
        $num = range(1,9);
        
        //把上面三个数组合并
        $data = array_merge($upper_str,$lower_str,$num);
        //为了让产生的数字更随机,先打乱一下顺序
        shuffle($data);
        
        //从上面数组中随机取出4个
        $randoms = array_rand($data,4);
        
        //通过下标获得对应的字符
        $str = ‘‘;
        foreach ($randoms as $v){
            $str .= $data[$v];
        }        
        echo ‘<pre>‘;
        var_dump($str);
    }
 
}

$captcha = new Captcha();
//$captcha -> makeImage();
$captcha -> makeCode();

时间: 2024-12-13 01:42:54

画布出现验证码的相关文章

12-8-协议、请求、响应、画布(验证码制作)

fwrite(文件句柄,写入内容)         返回值为写入文件的字节长度 fopen(文件路径,打开方式)          这个便是文件句柄 fclose(文件句柄)              关闭文件句柄 文件句柄打开后,可以对文件进行读写操作,关闭文件句柄便不能再对文件进行读写操作了. copy(被复制文件路径,复制后存放文件的路径)                 复制文件 存放位置要包含文件名 unlink(文件路径)              删除文件 filemtime(文件

画布实现验证码

1,html部分 <canvas id="vCode" class="vCode" width="100" height="40"></canvas> 2,js部分 //生成验证码 function createVCode() { var codeString = '0,1,2,3,4,5,6,7,8,9'; codeString += ',A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P

angular中使用canvas画布做验证码

//填充画布,五位随机数 drawNumber(): void { this.clearCanvas(); let ctx: CanvasRenderingContext2D = this.myGraph.nativeElement.getContext("2d"); ctx.shadowBlur = 200; ctx.shadowColor = "black"; ctx.font = "italic 20px Verdana"; ctx.tex

包装一个php的验证码类

验证码是我们开发的时候经常用到的功能,所以在此本人包装了一个验证码类,应该可以作为php的类插件用,在此分享给各位博客园的读友. 实现的原理也是很简单,就是利用画布的几个元素,再加上一些字符串的获取,东凑西凑就构成了,呵呵. 这里大概写一下思路吧,其实这个类已经注释的非常清楚了,不过,个人还是在行文前啰嗦一下. 首先是关于一些函数的解释,这里的解释纯属个人体会,有什么错误的地方,还请读者指正. 1.创建画布函数:imagecreatetruecolor(w,h); 说明:用于创建一个画布. w

画布Drawing.Bitmap (验证码时候用的)

<1>一般处理程序的图片处理 详情请参考:http://wenku.baidu.com/link?url=SrVlKGG2nzVuBIxUf6O_7NurKyVK4OuOakZJ_ET3kNf4Wknx1sXuA36_6ZZtOg3QZj1O_EKCFETmz0D3bKToD1dMPpTgmRVypNelmYKM2Pq <pre class="csharp" name="code">using System; using System.Col

画布实现随机验证码

1. html模板: 1 <div class="c-code"> 2 <canvas id="c-cvs"></canvas> 3 </div> 2. 使用: 2.1 引用js文件 2.2 在模板之外添加一个盒子,宽高必须给,验证码宽高与之相等 2.3 每调用一次drawBg(),刷新一次 2.4 drawBg().textArr 得到当前的文本内容存为数组 2.5 drawBg().text 得到当前的文本内容存为

验证码画布生成以及点击图片切换验证码

//这个验证码画布生成是师兄写的,不是本人写的 1 package com.didinx.common; 2 3 import javax.imageio.ImageIO; 4 import javax.servlet.ServletException; 5 import javax.servlet.annotation.WebServlet; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpSer

GD图片(画布)的制作及验证码的应用

创建画布:创建画布的函数有 imagecreatetruecolor(width,height);创建画布 width指画布的宽height指画布的高 imagecolorallocate(img,red,green,blue);创建画布句柄 img是一个画布资源,后面的rgb就代表一个颜色! imagetring(img,size,x,y,string,color);绘制文字 img:画布资源 size:文字的大小,这里只能是1-5,并且5最大 x.y:起始坐标 string:文字内容 col

php 扭曲验证码

1 <?php 2 3 class image{ 4 public static function code(){ 5 6 $str='abcdefghijklmnopqrstuvwxyz0123456789'; 7 $code = substr(str_shuffle($str),0,5); 8 9 // 2块画布 10 $src = imagecreatetruecolor(60, 25); 11 $dst = imagecreatetruecolor(60, 25); 12 13 // 灰