php 复杂生成验证码图片
<?php function image3($length = 4, $type = 'png', $width = 180, $height = 60, $fontface = 'fpnf.ttf', $verifyName = 'verify') { $code = $this->rand_string($length, 4); $width = ($length * 25) > $width ? $length * 25 : $width; $authCode = new Zend_Session_Namespace('Auth_Code'); $authCode->imagecode = $randval; $im = imagecreatetruecolor($width, $height); $borderColor = imagecolorallocate($im, 100, 100, 100); //边框色 $bkcolor = imagecolorallocate($im, 250, 250, 250); imagefill($im, 0, 0, $bkcolor); @imagerectangle($im, 0, 0, $width - 1, $height - 1, $borderColor); // 干扰 for ($i = 0; $i < 15; $i++) { //开源代码phprm.com $fontcolor = imagecolorallocate($im, mt_rand(0, 255) , mt_rand(0, 255) , mt_rand(0, 255)); imagearc($im, mt_rand(-10, $width) , mt_rand(-10, $height) , mt_rand(30, 300) , mt_rand(20, 200) , 55, 44, $fontcolor); } for ($i = 0; $i < 255; $i++) { $fontcolor = imagecolorallocate($im, mt_rand(0, 255) , mt_rand(0, 255) , mt_rand(0, 255)); imagesetpixel($im, mt_rand(0, $width) , mt_rand(0, $height) , $fontcolor); } if (!is_file($fontface)) { $fontface = dirname(__FILE__) . "/" . $fontface; } for ($i = 0; $i < $length; $i++) { $fontcolor = imagecolorallocate($im, mt_rand(0, 120) , mt_rand(0, 120) , mt_rand(0, 120)); //这样保证随机出来的颜色较深。 $codex = substr($code, $i, 1); imagettftext($im, mt_rand(16, 20) , mt_rand(-60, 60) , 40 * $i + 20, mt_rand(30, 35) , $fontcolor, $fontface, $codex); } $this->output($im, $type); } function output($im, $type = 'png') { header("Content-type: image/" . $type); $ImageFun = 'Image' . $type; $ImageFun($im); imagedestroy($im); }
本文地址:http://www.phprm.com/tuxiang/fs4494.html
转载随意,但请附上文章地址:-)