PHP驗證碼圖片產生程式

來源:互聯網
上載者:User
程式|驗證碼 <?php
//小豬會氣功
session_start();
session_register('code');
$width = "70";//圖片寬
$height = "25";//圖片高
$len = "4";//產生幾位驗證碼
$bgcolor = "#ffffff";//背景色
$noise = true;//產生雜點
$noisenum = 200;//雜點數量
$border = false;//邊框
$bordercolor = "#000000";
$image = imageCreate($width, $height);
$back = getcolor($bgcolor);
imageFilledRectangle($image, 0, 0, $width, $height, $back);
$size = $width/$len;
if($size>$height) $size=$height;
$left = ($width-$len*($size+$size/10))/$size;
for ($i=0; $i<$len; $i++)
{
        $randtext = rand(0, 9);
        $code .= $randtext;
 $textColor = imageColorAllocate($image, rand(0, 100), rand(0, 100), rand(0, 100));
 $font = rand(1,4).".ttf";
 $randsize = rand($size-$size/10, $size+$size/10);
 $location = $left+($i*$size+$size/10);
 imagettftext($image, $randsize, rand(-18,18), $location, rand($size-$size/10, $size+$size/10), $textColor, $font, $randtext);
}
if($noise == true) setnoise();
$_SESSION['code'] = $code;
$bordercolor = getcolor($bordercolor);
if($border==true) imageRectangle($image, 0, 0, $width-1, $height-1, $bordercolor);
header("Content-type: image/png");
imagePng($image);
imagedestroy($image);
function getcolor($color)
{
     global $image;
     $color = eregi_replace ("^#","",$color);
     $r = $color[0].$color[1];
     $r = hexdec ($r);
     $b = $color[2].$color[3];
     $b = hexdec ($b);
     $g = $color[4].$color[5];
     $g = hexdec ($g);
     $color = imagecolorallocate ($image, $r, $b, $g);
     return $color;
}
function setnoise()
{
 global $image, $width, $height, $back, $noisenum;
 for ($i=0; $i<$noisenum; $i++){
  $randColor = imageColorAllocate($image, rand(0, 255), rand(0, 255), rand(0, 255)); 
  imageSetPixel($image, rand(0, $width), rand(0, $height), $randColor);
 }
}
?>

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。