標題:
驗證圖
[打印本頁]
作者:
may
時間:
2011-5-22 09:40
標題:
驗證圖
<?php
// 宣告為圖片檔,格式為 PNG
header("Content-Type:image/PNG");
// 自訂一個函數為 NewPassword 密碼長度設定為八個字元
function NewPassword($pt=8){
$password = ""; // 存放產生的密碼
$str = "0123456789ahcgtifdkfHKRDHU"; // 產生的字元集
$str_len = strlen($str); // strlen() 取得字串的長度
for($i=1;$i<=$pt;$i++){
$password .= $str[rand()%$str_len]; // 亂數產生str陣列的索引值
}
return $password;
}
// 設定一個亂數種子
srand((double)microtime()*1000000); // 1
// 設定圖片大小為 200*28 ImageCreate() = 產生一張圖片
$im = ImageCreate(200, 28);
// 宣告圖片 $im 會使用到的顏色
// ImageColorAllocate(指定的圖片,R,G,B)
$back = ImageColorAllocate($im, 255,255,204); // lightYellow
$font = ImageColorAllocate($im, 255,5,10); // black
$point = ImageColorAllocate($im,255,0,0); // red 1
$point2 = ImageColorAllocate($im,15,5,17); // red 1
$point3 = ImageColorAllocate($im,162,51,170); // red 1
// 填滿圖片的底色 (指定的圖片,x,y,顏色)
ImageFill($im, 0, 0, $back);
// 寫入文字 (指定的圖片,文字大小,x,y,顏色)
$num1 = NewPassword(); // 改成亂數產生數字
ImageString($im,20,50,5,$num1,$font);
// 產生干擾的小點
for($i=0;$i<500;$i++){
ImageSetPixel($im, rand()%200, rand()%28, $point);
}
for($i=0;$i<300;$i++){
ImageSetPixel($im, rand()%200, rand()%28, $point2);
}
for($i=0;$i<20;$i++){
// (指定圖片,x,y,線條寬度,線條長度,顏色)
//ImageEllipse($im, rand()%200, rand()%28,2,12, $point3);
}
ImagePNG($im); //產出圖片
ImageDestroy($im); // 銷毀記憶體
?>
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/)
Powered by Discuz! 7.2