6 回答

TA貢獻446條經(jīng)驗 獲得超754個贊
你的代碼有錯誤啊。 $code=rand(0,9);?要改為?$code?.=?rand(0,9); imagestring($image,?5,?0,?0,?$code,?$color);?這里的$color還沒定義啊。

TA貢獻11條經(jīng)驗 獲得超2個贊
<?php
//繪制驗證碼(生成)
$num=4; //驗證碼的長度
$str = getCode($num,0);// 使用下面的自定義函數(shù),獲取需要的驗證碼值
//1. 創(chuàng)建一個畫布、分配顏色
$width=$num*20;//寬度
$height=30;//高度
$im = imagecreatetruecolor($width,$height);//創(chuàng)建一個畫布
//定義幾個顏色(輸出不同顏色的驗證碼)
$color[] = imagecolorallocate($im,111,0,55);
$color[] = imagecolorallocate($im,0,77,0);
$color[] = imagecolorallocate($im,0,0,160);
$color[] = imagecolorallocate($im,221,111,0);
$color[] = imagecolorallocate($im,220,0,0);
$bg = imagecolorallocate($im,240,240,240);//背景
//2. 開始繪畫
?imagefill($im,0,0,$bg);
?imagerectangle($im,0,0,$width-1,$height-1,$color[rand(0,4)]);
//隨機添加干擾點
?for($i=0;$i<200;$i++){
$c = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));//隨機一個顏色
imagesetpixel($im,rand(0,$width),rand(0,$height),$c);
?}
?
?//隨機添加干擾線
?for($i=0;$i<5;$i++){
$c = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));//隨機一個顏色
imageline($im,rand(0,$width),rand(0,$height),rand(0,$width),rand(0,$height),$c);
?}
?
?//繪制驗證碼內容(一個一個字符繪制):
?for($i=0;$i<$num;$i++){
imagettftext($im,18,rand(-40,40),8+(18*$i),24,$color[rand(0,4)],"msyh.ttf",$str[$i]); ? //msyh.ttf 為同一個目錄下的字體文件
?}
//3. 輸出圖像
header("Content-Type:image/png");//設置響應頭信息(注意此函數(shù)實行前不可以有輸出)
imagepng($im);
//4. 銷毀圖片(釋放內容)
imagedestroy($im);
提供參考
貌似你是的 for條件干擾點的 for循環(huán)弄錯了 ? ?僅僅只是提供參考?
- 6 回答
- 0 關注
- 3410 瀏覽
添加回答
舉報