//生成验证码图片注释
<?php
session_start();
$arr = array(
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x', 'y','z','0','1','2','3','4','5','6','7','8','9');$rand = "";
for($i=1;$i<=4; $i++){ $rand .= $arr[rand(0,count($arr)-1)];}$_SESSION['check_pic'] = $rand;
//生成图片
$im = imagecreatetruecolor(100,30);//生成颜色,当第一次调用生成颜色的方法,是生成背景颜色,默认是黑色
//如果想自定义背景颜色,用到imagefill函数$bg = imagecolorallocate($im,200,200,200);imagefill($im,0,0,$bg);//第二次调用这个方法,是可以生成图片上面的文字或其他样式的颜色
$te = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));$te2 = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
//生成干扰线,就是画线
$posLineX1 = rand(6,30);$posLineX2 = rand(30,60);for($i=0;$i<5;$i++){ $posLinY1=rand(2,10); $posLinY2=rand(11,28); imageline($im,$posLineX1,$posLinY1,$posLineX2,$posLinY2,$te2); $posLineX1 += rand(30,60); $posLineX2 += rand(61,98);}//干扰点
for($i=0;$i<90;$i++){
$te3 = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255)); imagesetpixel($im,rand(2,100),rand(2,30),$te3);} //在图片上面生成文字//imagestring($im,5,rand(3,70),rand(3,15),$rand,$te);$posX = rand(6,45);
for($i=0;$i<4;$i++){ $posY = rand(2,15); imagestring($im,rand(2,5),$posX,$posY,substr($rand,$i,1),$te); $posX += rand(8,20);}//要把php当成图片输出,必须给文件一个头申明
ob_clean 只是清空当前缓冲区的数据
ob_clean();
header("Content-type:image/jpeg");//最终生成图片imagejpeg($im);?>