两个简单的画验证码图形程序
来源:互联网 发布:中国银行业数据库 编辑:程序博客网 时间:2024/05/18 02:15
生成验证码比较简单,画图也不难,不过大家都不喜欢读手册,也不喜欢自己动手,一般是网上抄一段代码了事,我一直如此,偶尔画图,其实发现画图挺有趣。
不过拿普通字体生成的验证码,是没有一点“战斗力”的,很轻易的就会验证码识别程序识别内容,然后轻易被灌水,要生成好的验证码图片不是简单的事情,有些大公司专门一个部门去做这么一件事情,不过我这里只是了解演示,一般用途应该就够用了吧,呵呵。
下面两个函数,一个能够画出中文内容,另外一个能够画出英文内容,按照需要使用。
/**
* 生成中文字符,
*
* 必须有GD库、iconv或者mbstring库、相应的字体文件
*/
function makeChineseCharPic($str = '中文字符'){
//转码
if (function_exists('iconv')){
$str = iconv('gbk', 'utf-8', $str);
}elseif (function_exists('mb_convert_encoding')){
$str = mb_convert_encoding($str, 'utf-8', 'gbk');
}else{
exit("Not iconv charset");
}
//产生图片
$im = imageCreate(80, 30);
//背景色
$bkg = imageColorAllocate($im, 0, 255, 255);
//字体色
$clr = imageColorAllocate($im, 0, 128, 255);
//字体文件路径
$font = "c:/windows/fonts/simhei.ttf";
//使用字体来画TTF内容
imageTTFText($im, 13, 0, 5, 20, $clr, $font, $str);
//--------------------------------------------------
// 黑体:simhei.ttf, 宋体:simsun.ttc, 隶书:simli.ttf, 楷体:simkai.ttf, 幼圆:simyou.ttf
// 华文行楷:stxingka.ttf, 华文新魏:stxinwei.ttf, 华文彩云:stcaiyun.ttf, 华文仿宋:stfangso.ttf
// 方正姚体:fzytk, 方正舒体:fzstk.ttf
//--------------------------------------------------
//输出后清除资源
header("Content-type: image/png");
imagePng($im);
imageDestroy($im);
}
/**
* 画英文字符 (必须有GB库)
*/
function makeEnglishCharPic($str = 'ABCD12'){
//生成图片
$im = imageCreateTrueColor(65, 20);
//背景色
$bg = imageColorAlLocate($im, 0, 0, 0);
//字体色
$textColor = imageColorAlLocate($im, 0, 255, 255);
//画图
imageString($im, 5, 5, 2, $str, $textColor);
//输出后清除资源
header("Content-type: image/jpeg");
imageJpeg($im);
imageDestroy($im);
}
* 生成中文字符,
*
* 必须有GD库、iconv或者mbstring库、相应的字体文件
*/
function makeChineseCharPic($str = '中文字符'){
//转码
if (function_exists('iconv')){
$str = iconv('gbk', 'utf-8', $str);
}elseif (function_exists('mb_convert_encoding')){
$str = mb_convert_encoding($str, 'utf-8', 'gbk');
}else{
exit("Not iconv charset");
}
//产生图片
$im = imageCreate(80, 30);
//背景色
$bkg = imageColorAllocate($im, 0, 255, 255);
//字体色
$clr = imageColorAllocate($im, 0, 128, 255);
//字体文件路径
$font = "c:/windows/fonts/simhei.ttf";
//使用字体来画TTF内容
imageTTFText($im, 13, 0, 5, 20, $clr, $font, $str);
//--------------------------------------------------
// 黑体:simhei.ttf, 宋体:simsun.ttc, 隶书:simli.ttf, 楷体:simkai.ttf, 幼圆:simyou.ttf
// 华文行楷:stxingka.ttf, 华文新魏:stxinwei.ttf, 华文彩云:stcaiyun.ttf, 华文仿宋:stfangso.ttf
// 方正姚体:fzytk, 方正舒体:fzstk.ttf
//--------------------------------------------------
//输出后清除资源
header("Content-type: image/png");
imagePng($im);
imageDestroy($im);
}
/**
* 画英文字符 (必须有GB库)
*/
function makeEnglishCharPic($str = 'ABCD12'){
//生成图片
$im = imageCreateTrueColor(65, 20);
//背景色
$bg = imageColorAlLocate($im, 0, 0, 0);
//字体色
$textColor = imageColorAlLocate($im, 0, 255, 255);
//画图
imageString($im, 5, 5, 2, $str, $textColor);
//输出后清除资源
header("Content-type: image/jpeg");
imageJpeg($im);
imageDestroy($im);
}
有兴趣的欢迎自行加入干扰元素,或者是对图片进行变形,让那些图片识别程序无法识别。(最近两个月超级忙,好久没写东西,写一篇凑数,嘿嘿,表见怪)
- 两个简单的画验证码图形程序
- 两个简单的画验证码图形程序
- 两个简单的画验证码图形程序
- 两个简单的画验证码图形程序
- 两个简单的画验证码图形程序
- 基于SNMP的MIB库访问实现两个简单的画验证码图形程序
- 简单的图形验证码
- 简单的图形验证码
- 简单的图形验证码识别代码
- 简单的验证码程序
- 史上最简单的图形验证码识别代码
- 使用GDI+识别简单的图形验证码
- 史上最简单的图形验证码识别代码
- 简单版:带干扰线的图形验证码生成
- 完整的PHP图形验证码程序源码!
- 完整的PHP图形验证码程序源码!
- 完整的PHP图形验证码程序源码!
- 完整的PHP图形验证码程序源码
- 【原创+转贴】岁月不饶人,爸妈老了
- 管理总结
- JavaBean操作Oracle数据库
- java数据库基础类
- 日本軟件外包設計書常用文型
- 两个简单的画验证码图形程序
- MFC深入浅出--命令传递
- 朝三暮四的我
- Action管理数据表的增加删除和修改工作的跳转和调用执行业务函数
- 介绍一个好用的Grid控件"EjunGrid"
- 自由与共享,对现有版权体系的叛逆
- J2ME低级界面中文输入法
- JAVASWING学习笔记
- 宽带