PHP 验证码可设置字体(大小),可换背景图片,可扭曲角度

来源:互联网 发布:vc mfc编程实例教程 编辑:程序博客网 时间:2024/05/08 06:34

//若以下代码有错或不足,请在评论中指出

$img=imagecreatetruecolor(70,25); //创建画布
$bgimg=imagecreatefromjpeg("backgroud/background".rand(1,8).'.jpg');
//生成背景图片
$bg_x=rand(0,130);
//随机招贴画布起始X轴坐标
$bg_y=rand(0,55);
//随机招贴画布起始Y轴坐标
imagecopy($img,$bgimg,0,0,$bg_x,$bg_y,$bg_x+70,$bg_y+25); //把背景图片$bging粘贴的画布上

//生成随机字符串
function creaStr($len){
     $arr1=range(0,9);
     $arr2=range(a,z);
     $arr3=range(A,Z);
     $arr=array_merge($arr1,$arr2,$arr3);
     str_shuffle($arr);
     $str="";
     for($i=0;$i<$len;$i++){
            $str.=$arr[rand(0,61)];
     }
    return $str;
}

$font='Astarisborn.TTF'; //字体
$str=creaStr(4);
//字符串
for($i=0,$j=5;$i<4;$i++){
      $array = array(-1,1);
      $p = array_rand($array);
      $an = $array[$p]*mt_rand(1,10);
//扭曲角度
      $size = 14;//字体大小
      imagettftext($img, $size, $an, $j,rand(13,20),imagecolorallocate($img,rand(0,100),rand(0,100),rand(0,100)), $font, $str[$i]);
//生成验证字符窜
      $j+=15;
}
header('Content-type:image/png');
imagepng($img);
imagedestroy($img);

原创粉丝点击