1. 程式人生 > >第九章 php影象處理(驗證碼)

第九章 php影象處理(驗證碼)

<?php

header('Content-type:image/jpeg'); 
$width=120;
$height=40;

$element=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');

$string='';//變數初始化
for($i=0;$i<5;$i++){
    $string.=$element[rand(0,count($element)-1)];        
}

$img=imagecreatetruecolor($width,$height);
$colorBg=imagecolorallocate($img,rand(200,255),rand(200,255),rand(200,255));  //rand()是隨機取值函式
$colorBorder=imagecolorallocate($img,rand(200,255),rand(200,255),rand(200,255)); 
$colorPoint=imagecolorallocate($img,rand(100,200),rand(100,200),rand(100,200)); 
$colorLine=imagecolorallocate($img,rand(100,200),rand(100,200),rand(100,200)); 
$colorString=imagecolorallocate($img,rand(100,200),rand(100,200),rand(100,200));


imagefill($img,0,0,$colorBg);
imagerectangle($img, 0, 0, $width-1, $height-1, $colorBorder); //畫個矩形,從左上角到右下角

for($i=0;$i<100;$i++){
    imagesetpixel($img, rand(0,$width-1), rand(0,$height-1), $colorPoint);//畫點
}

//畫線
for($i=0;$i<3;$i++){
    imageline($img,rand(0,$width/2),rand(0,$width/2),rand($width/2,$height),rand($height/2,$height),$colorLine);
}

//寫字母
/* imagestring($img, 5, 0, 0, 'abcd', $colorString); *///5是字型

imagettftext($img, 18, rand(-5,5), rand(5,15), rand(20,35), $colorString, 'font/Elements.ttf', $string);//http://www.font5.com.cn/tag.php?tag=ttf%B8%F1%CA%BD

imagejpeg($img);    
imagedestroy($img);  //釋放資源