【www.bbyears.com--php入门】
实例
代码如下
session_start();
$im = imagecreate(80,30);//创建图片
$color = imagecolorallocate($im,rand(150,200),rand(150,200),rand(150,200));//设置图片背景
$str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";//产生随机字符串
for($i=0;$i<5;$i++){
$code .= $str[rand(0,(strlen($str)-1))];
}
$_SESSION["code"] = $code;
for($a=0;$a<5;$a++){ //将字符串写入图片资源
$x = $a*10 + 15;
$y = rand(5,10); // www.111cn.net
imagechar($im,5,$x,$y,$code{$a},imagecolorallocate($im,0,0,0));
}
header("Content-type:image/png");//输出图片资源
imagepng($im);
?>
例2
代码如下
if(!isset($_SESSION)){ //判断session是否开启
session_start(); //开启就session
}
$width=70; //布画宽度
$height=25; //布画高度
$length=4;//验证码长度
$code=getcode($length); //获取随机字符串
$_SESSION["verfyCode"] = $code;
$img=imagecreate($width,$height);
$bgcolor=imagecolorallocate($img,240,240,240);
$rectangelcolor=imagecolorallocate($img,150,150,150);
imagerectangle($img,1,1,$width-1,$height-1,$rectangelcolor);//画边框
for($i=0;$i<$length;$i++){//循环写字
$codecolor=imagecolorallocate($img,mt_rand(50,200),mt_rand(50,128),mt_rand(50,200));
$angle=rand(-20,20);
$charx=$i*15+8;
$chary=($height+14)/2+rand(-1,1);
imagettftext($img,15,$angle,$charx,$chary,$codecolor,"C:WINDOWSFontsSIMKAI.TTF",
$code[$i]);
}
for($i=0;$i<20;$i++){//循环画线
$linecolor=imagecolorallocate($img,mt_rand(0,250),mt_rand(0,250),mt_rand(0,250));
$linex=mt_rand(1,$width-1);
$liney=mt_rand(1,$height-1);
imageline($img,$linex,$liney,$linex+mt_rand(0,4)-2,$liney+mt_rand(0,4)-2,$linecolor);
}
for($i=0;$i<100;$i++){//循环画点
$pointcolor=imagecolorallocate($img,mt_rand(0,250),mt_rand(0,250),mt_rand(0,250));
imagesetpixel($img,mt_rand(1,$width-1),mt_rand(1,$height-1),$pointcolor);
}
function getcode($length){//生成php随机数
$pattern = "1234567890ABCDEFGHIJKLOMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ";//字符池
for($i=0;$i<$length;$i++) {
$key .= $pattern{mt_rand(0,35)};
}
return $key;
}
ob_clean();
header("Content-type:image/png");
imagepng($img);
?>
效果图如下