首页 > 其他 > 详细

时间:2014年4月10日21:03:36验证码的扭曲

时间:2014-04-11 15:44:28      阅读:369      评论:0      收藏:0      [点我收藏+]


<?php

/*扭曲验证码

建一个与原验证码一样大的画布

原画布的每一个像素的竖条,复制到另一个上

每一个竖条,在上下有波动,新画布自然就扭曲了


*/

class image{

     public  static  function code(){

          $width  = 50;

          $height  = 20;

          //造画布

           $image =  imagecreatetruecolor($width,$height);

           $dsi = imagecreatetruecolor($width,  $height);

          //造背景颜色

          $gray  = imagecolorallocate($image,200,200,200);

          //填充背景

          imagefill($image,0,0,$gray);

          //造随机字体颜色

          $color  = imagecolorallocate($image,mt_rand(0,125),mt_rand(0,125),mt_rand(0,125));

          //造随机线条颜色

          $color1  =  imagecolorallocate($image,mt_rand(100,125),mt_rand(100,125),mt_rand(100,125));

          $color2  =  imagecolorallocate($image,mt_rand(100,125),mt_rand(100,125),mt_rand(100,125));

          $color3  = imagecolorallocate($image,mt_rand(100,125),mt_rand(100,125),mt_rand(100,125));

           //在画布上画线条

           imageline($image,mt_rand(0,$width),mt_rand(0,$height),mt_rand(0,$width),mt_rand(0,$height),$color1);

           imageline($image,mt_rand(0,$width),mt_rand(0,$height),mt_rand(0,$width),mt_rand(0,$height),$color2);

           imageline($image,mt_rand(0,$width),mt_rand(0,$height),mt_rand(0,$width),mt_rand(0,$height),$color3);

          //在画布上写字

          $text  =  substr(str_shuffle(‘ABCDEFGHIJKMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789‘),0,4);

          imagestring($image,5,7,5,$text,$color);

          for  ($i=0; $i < 60; $i++) {

                $offset  = 2; //最大波动几个像素

                $round  = 1; //周期数 2 PI

                $posY  = round(sin($i*$round*2 *M_PI/60)*$offset);//根据正弦函数进行扭曲

                //imagecopy(dst_im,  src_im, dst_x, dst_y, src_x, src_y, src_w, src_h)

                imagecopy($dsi,  $image, $i, $posY, $i, 0, 1, $height);

          }

          //显示文字

          header("content-type:image/jpeg");

          imagejpeg($dsi);

          imagedestroy($image);

          imagedestroy($dsi);

     }

}

image::code();

?>


本文出自 “杜国栋个人PHP学习博文” 博客,请务必保留此出处http://duguodong.blog.51cto.com/7667978/1393703

时间:2014年4月10日21:03:36验证码的扭曲,布布扣,bubuko.com

时间:2014年4月10日21:03:36验证码的扭曲

原文:http://duguodong.blog.51cto.com/7667978/1393703

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!