PHP的gd库实验一

GD库,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片
1. Windows下开启PHP的GD库支持找到php.ini,打开内容,找到
;extension=php_gd2.dll把最前面的分号“;”去掉。
2. <?php echo function_exists("imagecreate")?>;如果返回值为1,则说明服务器支持GD库。
3. var_dump(gd_info()); //可以以数组形式输出gd库的版本、图形支持等各种信息

GD库写验证码,创建两个文件image.func.php和string.func.php
image.func.php中定义验证码每位的范围

function buildRandomString($type=1,$length=4){

if($type==1){
    $chars=join("",range(0,9));
}   elseif($type==2){
    $chars=join("",array_merge(range("a","z"),range("A","Z")));
}elseif($type==3){
    $chars=join("",array_merge(range("a","z"),range("A","Z"),range(0,9)));
}
if($length>strlen($chars)){
    exit("字符串长度不够");
}
$chars=str_shuffle($chars);
return substr($chars,0,$length);
}

string.func.php中创建画布,调用buildRandomString()

$chars= buildRandomString ($type,$length);
$sess_name="verify";
$_SESSION[$sess_name]=$chars;

让4位验证码随机产生,

$fontfiles=array("MSYH.TTF","MSYHBD.TTF","SIMSUN.TTC","SIMYOU.TTF");
for($i=0;$i<$length;$i++){
    //字体和角度,坐标,颜色随机产生
    $size=mt_rand(14,18);
    $angle=mt_rand(-15,15);
    $x=5+$i*$size;
    $y=mt_rand(20,26);
    $fontfile="../NewsWeb/fonts/".$fontfiles[mt_rand(0,count($fontfiles)-1)];
    $color=imagecolorallocate($image,mt_rand(50,90),mt_rand(80,200),mt_rand(90,180));
    $text=substr($chars,$i,1);
    imagettftext($image,$size,$angle,$x,$y,$color,$fontfile,$text);
}

如有必要可以添加无规则的点来扰乱视线

if ($pixel) {
        for($i = 0; $i < 50; $i ++) {
            imagesetpixel ( $image, mt_rand ( 0, $width - 1 ), mt_rand ( 0, $height - 1 ), $black );}
            }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值