吾愛編程接下來問大家分享一個php實現的隨機圖片圖片驗證碼封裝類,一個最簡單的生成隨機驗證碼圖片的例子,適合正在學習OOP面向對象編程以及PHP隨機圖片驗證碼生成的同學。
<?php
class Verify{
public function show() {
$len = 5;
$str = "ABCDEFGHIJKLNMPQRSTUVWXYZ123456789";
$im = imagecreatetruecolor ( 70, 20 );
$bgc = imagecolorallocate($im, 255, 255, 255);
$bgtxt = imagecolorallocate($im, 220, 220, 220);
//隨機調色板
$colors = array(
imagecolorallocate($im, 255, 0, 0),
imagecolorallocate($im, 0, 200, 0),
imagecolorallocate($im, 0, 0, 255),
imagecolorallocate($im, 0, 0, 0),
imagecolorallocate($im, 255, 128, 0),
imagecolorallocate($im, 255, 208, 0),
imagecolorallocate($im, 98, 186, 245),
);
//填充背景色
imagefill($im, 0, 0, $bgc);
//隨機獲取數字
$verify = "";
while (strlen($verify) < $len) {
$i = strlen($verify);
$random = $str[rand(0, strlen($str))];
$verify .= $random;
//繪制背景文字
imagestring($im, 6, ($i*10)+3, rand(0,6), $random, $bgtxt);
//繪制主文字信息
imagestring($im, 6, ($i*10)+3, rand(0,6), $random, $colors[rand(0, count($colors)-1)]);
}
//添加隨機雜色
for($i=0; $i<100; $i++) {
$color = imagecolorallocate($im, rand(50,220), rand(50,220), rand(50,220));
imagesetpixel($im, rand(0,70), rand(0,20), $color);
}
//將驗證碼存入$_SESSION中
$_SESSION["verify"] = $verify;
//輸出圖片並釋放緩存
header("Content-type: image/png");
imagepng($im);
imagedestroy($im);
}
}
// 使用方法
$verify = new Verify;
$verify->show();
?>
本文只是簡單實現了隨機圖片驗證碼,如果你想定制自己的圖片樣式,只需要根據注釋中的語句,調整顏色即可。
*