您好,登錄后才能下訂單哦!
代碼如下:
<?php
header("Content-type: text/html; charset=utf8");
/*
* 函數名:createImage
* 描述:獲取驗證圖片驗證碼
* @param $width 畫布的寬
* @param $height 畫布的高
* @param $number 驗證碼位數
*/
function createImage($width,$height,$number){
// 1.創建畫布
// imagecreatetruecolor執行創建操作(創建一幅真彩色的圖像)
// $width:畫布的寬 $height:畫布的高
$img = imagecreatetruecolor($width, $height);
// 2.為畫布填充背景色
// mt_rand函數返回0-120隨機數
// imagecolorallocate為一幅圖像分配顏色
$bgColor = imagecolorallocate($img, mt_rand(0,120), mt_rand(0,120), mt_rand(0,120));
// 填充操作
imagefill($img, 1, 1, $bgColor);
// 3.定義在畫布上的顯示文字
// 顯示隨機字符的范圍
$arr = array_merge(range('a', 'z'), range('A', 'Z'), range(0, 9));
// 得到指定位數的隨機字符
$str = '';
// 把數組中的元素按隨機順序重新排序
shuffle($arr);
// 返回包含隨機鍵名的數組
$keyArr = array_rand($arr,$number);
foreach ($keyArr as $value) {
$str .= $arr[$value];
}
// 4.將字符寫入到畫布
$span = ceil($width/($number+1));
for ($i=1; $i <= $number; $i++) {
// 為畫布創建畫筆色
$charColor = imagecolorallocate($img, mt_rand(120,255), mt_rand(120,255), mt_rand(120,255));
// 水平地畫一行字符串
// $img:畫布
// 5:字體
// $span*$i:x軸坐標
// 12:Y坐標
// $str[$i-1]:字符串
// $charColor:顏色
imagestring($img, 5, $span*$i, 12, $str[$i-1], $charColor);
}
// 5.創建干擾線
for ($i=0; $i < 8; $i++) {
// 創建干擾線顏色
$linColor = imagecolorallocate($img, mt_rand(75,150), mt_rand(75,150), mt_rand(75,150));
// 創建干擾線
imageline($img, mt_rand(0,$width-1), mt_rand(0,$height-1), mt_rand(0,$width-1), mt_rand(0,$height-1), $linColor);
}
// 6.顯示圖片
header('content-type:image/png');
// 清空輸出緩沖區
ob_clean();
// 打印圖片
imagepng($img);
}
// 調用創建驗證碼圖片函數
createImage(150,40,4);
運行結果如下:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。