php 验证码程序(数字与字母)
代码如下 | 复制代码 |
function fun_code($sessionname) { header("content-type:image/png"); session_start(); $authnum_session = ''; //$str = 'abcdefghijkmnpqrstuvwxyz1234567890'; $str = '1234567890'; $l = strlen($str); for($i=1;$i<=4;$i++) { $num=rand(0,$l-1); $authnum_session.= $str[$num]; } $_session[$sessionname]=$authnum_session; srand((double)microtime()*1000000); $im = imagecreate(50,20); $black = imagecolorallocate($im, 0,0,0); $white = imagecolorallocate($im, 255,255,255); $gray = imagecolorallocate($im, 200,200,200); imagefill($im,68,30,$gray); for($i=0;$i<3;$i++) { imageline($im,rand(0,30),rand(0,21),rand(20,40),rand(0,21),$li); } imagestring($im, 5, 8, 2, $authnum_session, $white); for($i=0;$i<90;$i++) { imagesetpixel($im, rand()%70 , rand()%30 , $gray); } imagepng($im); imagedestroy($im); } echo fun_code("code"); |
代码如下 | 复制代码 |
<?php $imagedraw = new imagick(); $pixel = new imagickpixel('gray'); $pixel->setcolor('black'); $imagedraw->newimage(100, 75, $pixel); $draw = new imagickdraw(); $draw->setfont('bookman-demiitalic'); $draw->setfontsize(12); $image=new imagick(); $animation = new imagick(); $animation->setformat( "gif" ); $image->readimage("old.gif"); $unitl = $image->getimageindex(); $image->writeimages('animation.gif',false); $delay = $image->getimagedelay(); $filename = 'animation-'; for ($i=0; $i<$unitl; $i++) { $thisimage = new imagick(); $thisimage->readimage($filename.$i.'.gif'); $thisimage->annotateimage($draw, 0, 12, 0, 'copyright by mpeg'); $animation->addimage($thisimage); $animation->setimagedelay($delay); } header("content-type: image/gif"); echo $animation->getimagesblob(); ?> |
imagemagick功能的php扩展。使用这个扩展可以使php具备和imagemagick相同的功能。 imagemagick是一套功能强大、稳定而且免费的工具集和开发包,可以用来读、写和处理超过185种基本格式的图片文件,包括流行的tiff, jpeg, gif, png, pdf以及photocd等格式。利用imagemagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存。
组件下载地址
http://pecl.php.net/package/imagick
http://www.imagemagick.org
代码如下 | 复制代码 |
$ch_str="你要生成中文验证码汉字"; for($i=0;$i<$line_num;$i++) //生成中文验证码二 imagettftext($im, rand(28,32), rand(0,70), rand(25,27), rand(70,100), $font_color, $fnt, $str2); //把汉字放在数组 $randcode=array('宠'); //gb2312转utf8
if($utf8!="") //unicode转utf8
$str.=(0x80|$c>>6&0x3f); //生成附加码 //加入杂点 $font_face="simkai.ttf"; //字体 |
// 使用的时候直接用html语法:<img src="excode.php">调用就可以了,在服务端做验证时取session存储的验证字符与用户提交的字符进行比较,相同则通过验证
使用ImageCreate()创建一个代表空白图像的变量,这个函数要求以像素为单位的图像大小的参数,其格式是ImageCreate(x_size, y_size)。如果要创建一个大小为250×250的图像,就可以使用下面的语句:<? header ("content-type: image/png");
代码如下 | 复制代码 |
$newimg = imagecreate(250,250); |
由于图像还是空白的,因此你可能会希望用一些彩色来填充它。你需要首先使用imagecolorallocate()函数用其rgb值为这种颜色指定一个名字,这一函数的格式为imagecolorallocate([image], [red], [green], [blue])。如果要定义天蓝色,可以使用如下的语句:
代码如下 | 复制代码 |
$skyblue = imagecolorallocate($newimg,136,193,255); |
接下来,需要使用imagefill()函数用这种颜色填充这个图像,imagefill()函数有几个版本,例如imagefillrectangle()、imagefillpolygon()等。为简单起见,我们通过如下的格式使用imagefill()函数:
代码如下 | 复制代码 |
imagefill([image], [start x point], [start y point], [color]) imagefill($newimg,0,0,$skyblue); |
最后,在图像建立后释放图像句柄和所占用的内存:
代码如下 | 复制代码 |
imagepng($newimg); imagedestroy($newimg); ?> |
这样,创建图像的全部代码如下所示:
php教程代码:
代码如下 | 复制代码 |
<? header ("content-type: image/png"); $newimg = imagecreate(250,250); $skyblue = imagecolorallocate($newimg,136,193,255); imagefill($newimg,0,0,$skyblue); imagepng($newimg); imagedestroy($newimg); ?> |
代码如下 | 复制代码 |
<?php教程 /** class cls_jpgraph var $graph = ''; //图形对象 var $lineplot = ''; //线性对象 var $scale = ''; //图表类型? (textlin,textlog,intlin) /*margin position*/ /** $this->graph = new graph($this->width,$this->height); } /** /*图片基本信息设置*/ $this->scale = $scale; if(!empty($scale)) { if(!empty($bgcolor)) { /*如果手工设置了图片位置*/ if(!empty($this->title)) { } /*创建线性关系图表(linear plot)*/ return $this->lineplot; /*创建柱状图表(bar pot)*/ return $this->barpot; /*创建数据柱状图表组*/ return $this->gbplot; /*创建文本内容*/ if(is_array($postion)) { $this->graph->add($this->txt); /*创建丙状图表*/ $this->piegraph = new piegraph(300,200); $this->piegraph->title->set($title); if('3d' != $type) { function get_auth_code($length=4) if( $spam->stroke() === false ) { return $chars; /*完成图形创建并显示*/ ?> |
相关文章
- Create Procedure AtoC @ChangeMoney Money as Set Nocount ON Declare @String1 char(20) Declare @String2 char(30) ...2016-11-25
- 这篇文章主要介绍了C#开发Windows窗体应用程序的简单操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
- 这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下...2020-06-25
- 本文通过例子,讲述了C++调用C#的DLL程序的方法,作出了以下总结,下面就让我们一起来学习吧。...2020-06-25
- 这篇文章主要介绍了微信小程序 页面传值详解的相关资料,需要的朋友可以参考下...2017-03-13
- 本文通过两个示例讲解了一下Process类调用外部应用程序的基本用法,并简单讲解了StartInfo属性,有需要的朋友可以参考一下。...2020-06-25
- CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
- 最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
- 大概有如下步骤 新建项目Bejs 新建文件package.json 新建文件Gruntfile.js 命令行执行grunt任务 一、新建项目Bejs源码放在src下,该目录有两个js文件,selector.js和ajax.js。编译后代码放在dest,这个grunt会...2014-06-07
- 这篇文章主要介绍了uniapp微信小程序:key失效的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-20
- 这篇文章主要介绍了微信小程序 二维码生成工具 weapp-qrcode详解,教大家如何在项目中引入weapp-qrcode.js文件,通过实例代码给大家介绍的非常详细,需要的朋友可以参考下...2021-10-23
jQuery Real Person验证码插件防止表单自动提交
本文介绍的jQuery插件有点特殊,防自动提交表单的验证工具,就是我们经常用到的验证码工具,先给大家看看效果。效果图如下: 使用说明 需要使用jQuery库文件和Real Person库文件 同时需要自定义验证码显示的CSS样式 使用实例...2015-11-08- 这篇文章主要为大家详细介绍了C#实现猜数字游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
- 这篇文章主要为大家详细介绍了JS实现随机生成验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-06
将c#编写的程序打包成应用程序的实现步骤分享(安装,卸载) 图文
时常会写用c#一些程序,但如何将他们和photoshop一样的大型软件打成一个压缩包,以便于发布....2020-06-25- 设置登录密码我们一般会有限制的如由什么组合了,下面我们来看一篇关于安卓开发之设置密码只能输入字母和数字的组合方法,具体的细节如下所示。 无论是电脑还是手机...2016-09-20
- 本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
- 这篇文章主要介绍了微信小程序 网络请求(GET请求)详解的相关资料,需要的朋友可以参考下...2016-11-22
- 这篇文章主要为大家详细介绍了微信小程序自定义tabbar组件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-03-14
- 这篇文章主要给大家介绍了关于微信小程序如何获取图片宽度与高度的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-10