转自:http://www.blhere.com/1165.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<?php
class CCheckCodeFile
{
//验证码位数
;
 
//产生的验证码
private $mCheckCode   = '';
 
//验证码的图片
private $mCheckImage  = '';
 
//干扰像素
private $mDisturbColor  = '';
 
//验证码的图片宽度
private $mCheckImageWidth = '80';
 
//验证码的图片宽度
private $mCheckImageHeight  = '20';
 
/**
*
* @brief   输出头
*
*/
private function OutFileHeader()
{
  header ("Content-type: image/png");
}
 
/**
*
* @brief   产生验证码
*
*/
private function CreateCheckCode()
{
  ,$this->mCheckCodeNum));
   return $this->mCheckCode;
}
 
/**
*
* @brief   产生验证码图片
*
*/
private function CreateImage()
{
  $this->mCheckImage = @imagecreate ($this->mCheckImageWidth,$this->mCheckImageHeight);
  );
   return $this->mCheckImage;
}
 
/**
*
* @brief   设置图片的干扰像素
*
*/
private function SetDisturbColor()
{
   ;$i++)
   {
   ));
   
),$this->mDisturbColor);
   }
}
 
/**
*
* @brief   设置验证码图片的大小
*
* @param   $width   宽
*
* @param   $height 高
*
*/
public function SetCheckImageWH($width,$height)
{
   if($width==''||$height=='')return false;
  $this->mCheckImageWidth  = $width;
  $this->mCheckImageHeight = $height;
   return true;
}
 
/**
*
* @brief   在验证码图片上逐个画上验证码
*
*/
private function WriteCheckCodeToImage()
{
   ;$i<=$this->mCheckCodeNum;$i++)
   {
   ));
   $x =
floor($this->mCheckImageWidth/$this->mCheckCodeNum)*$i;
   );
   , $x, $y, $this->mCheckCode[$i], $bg_color);
   }
}
 
/**
*
* @brief   输出验证码图片
*
*/
public function OutCheckImage()
{
  $this ->OutFileHeader();
  $this ->CreateCheckCode();
  $this ->CreateImage();
  $this ->SetDisturbColor();
  $this ->WriteCheckCodeToImage();
 
imagepng($this->mCheckImage);
  imagedestroy($this->mCheckImage);
}
}
$c_check_code_image = new CCheckCodeFile();
//$c_check_code_image ->SetCheckImageWH(100,50);//设置显示验证码图片的尺寸
$c_check_code_image ->OutCheckImage();
?>

PHP验证码文件类的更多相关文章

  1. 【转载】Asp.Net生成图片验证码工具类

    在Asp.Net应用程序中,很多时候登陆页面以及其他安全重要操作的页面需要输入验证码,本文提供一个生成验证码图片的工具类,该工具类通过随机数生成验证码文本后,再通过C#中的图片处理类位图类,字体类,一 ...

  2. Java 验证码工具类

    package com.wuyu.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import ...

  3. C# 一些知识点总结(二)_路径类,编码类,文件类...

    Path 类:路径类path.GetFileName("文件路径")//获取完整文件名,包括文件名和文件拓展名Path.GetFileNameWithoutExtension(&q ...

  4. PHP加载另一个文件类的方法

    加载另一个文件类的方法 当前文件下有a.php 和b.php,想要在class b中引入class a <?php    class a    {        public $name = ' ...

  5. php实现的IMEI限制的短信验证码发送类

    php实现的IMEI限制的短信验证码发送类 <?php class Api_Sms{ const EXPIRE_SEC = 1800; // 过期时间间隔 const RESEND_SEC = ...

  6. java_文件类

    例一:创建文件 package java文件类; import java.io.File; import java.io.IOException; public class aasd { public ...

  7. php阅读csv文件类

    php处理csv文件类: http://www.php100.com/cover/php/540.html <?php define("CSV_Start", 0); def ...

  8. DSAPI多功能组件编程应用-文件类

    [DSAPI.DLL下载地址]     本节内容,是属于"无需过多说明"就能使用的功能.由于实在是太简单,我就简单地示例一下. DSAPI.文件类.获取可读性强的字节大小信息(&q ...

  9. 第1章 Linux文件类基础命令

    1. 关于路径和通配符 Linux中分绝对路径和相对路径,绝对路径一定是从/开始写的,相对路径不从根开始写,还可能使用路径符号. 路径展开符号: . :(一个点)表示当前目录 .. :(两个点)表示上 ...

随机推荐

  1. Golang数据库操纵对IN语句的支持

    一: 在实际的工程项目中,SQL通常使用预编译的形式进行执行操纵,可以有效的防止SQL注入的风险,提高编码的规范性.golang中使用sqlx进行sql查询的时候,在使用in语句在一个集合中查询的时候 ...

  2. 清除样式的css

    html, body, div, ul, li, h1, h2, h3, h4, h5, h6, p, dl, dt, dd, ol, form, input, textarea, th, td, s ...

  3. Hibernate-概述-搭建-测试-配置详解

    一 hibernate概述 1.1 框架是什么 1.框架是用来提高开发效率的 2.封装了好了一些功能.我们需要使用这些功能时,调用即可.不需要再手动实现. 3.所以框架可以理解成是一个半成品的项目.只 ...

  4. 解决JSP调用JavaBean出现乱码问题

    解决JSP调用JavaBean出现乱码问题 话不多说放代码 144 Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style D ...

  5. String and Times

    String and Times 时间限制: 1 Sec  内存限制: 128 MB 题目描述 Now you have a string consists of uppercase letters, ...

  6. linux后台执行程序相关命令

    linux下我们如果想一个任务或者程序还后台执行可以使用&,实际上linux还提供了其他任务调度的命令. bg将一个在后台暂停的命令,变成继续执行 fg将后台中的命令调至前台继续运行 jobs ...

  7. [转]深入理解ajax系列——响应编码

    我们接收到的 ajax 响应主体类型可以是多种形式的,包括字符串String.ArrayBuffer对象.二进制Blob对象.JSON对象.javascirpt文件及表示 XML文档的Document ...

  8. 【笔记】LR集合点

    集合点的引入是为了模拟并发场景: 1.模拟多用户相同操作的并发. 2.模拟多用户不同操作的并发.(把集合点的名字改成一个就可以了) 在脚本中插入集合点 集合点只需要在脚本中插入rendezvous即可 ...

  9. 读书笔记--Head First C#目录

    1.c#助你快速开发2.都只是代码3.对象4.类型与引用5.封装6.继承7.接口与抽象类8.枚举与集合9.读/写文件10.异常处理11.事件与委托12.复习与预习13.控件与图片14.captain ...

  10. day18 17.c3p0连接池使用

    连接池时间长不用空闲着,dbcp是不回收的,性能可能有些问题.c3p0是可以自动回收.实际开发中c3p的生产力比dbcp强,性能上更强. package cn.itcast.datasource; i ...