-
- class CCheckCodeFile
- {
- //認証コードの桁数
- private $mCheckCodeNum = 4;
-
- //生成された認証コード
- private $mCheckCode = '';
-
- //認証コード画像
- private $mCheckImage = '';
-
- //干渉ピクセル
- private $mDisturbColor = '';
-
- //検証コード画像幅
- private $mCheckImageWidth = '80';
-
- //検証コード画像幅
- private $mCheckImageHeight = '20';
-
- /**
- *
- * @短い出力ヘッダー
- *
- */
- プライベート関数 OutFileHeader()
- {
- ヘッダー ("Content-type: image/png");
- }
-
- /**
- *
- * @brief は確認コードを生成します
- *
- * /
- プライベート関数 CreateCheckCode()
- {
- $this->mCheckCode = strtoupper(substr(md5(rand()),0,$this->mCheckCodeNum));
- return $this->mCheckCode ;
- }
-
- /**
- *
- * @brief が確認コード画像を生成します
- *
- */
- プライベート関数 CreateImage()
- {
- $this->mCheckImage = @imagecreate ($this->mCheckImageWidth,$this->mCheckImageHeight);
- imagecolorallocate ( $this- >mCheckImage, 200, 200, 200);
- return $this->mCheckImage;
- }
-
- /**
- *
- * @brief 画像の干渉ピクセルを設定します
- *
- */
- プライベート関数 SetDisturbColor()
- {
- for ($i=0 ;$i< ;=128;$i++)
- {
- $this->mDisturbColor = imagecolorallocate ($this->mCheckImage, rand(0,255), rand(0,255), rand(0,255));
- imagesetpixel($this ->gt; mCheckImage,rand(2,128),rand(2,38),$this->mDisturbColor);
- }
- }
-
- /**
- *
- * @brief 認証コード画像のサイズを設定します
- *
- * @param $width width
- *
- * @param $height height
- *
- */
- public function SetCheckImageWH($width,$height)
- {
- if($width==''||$height=='')return false;
- $this->mCheckImageWidth = $width;
- $this->mCheckImageHeight = $height;
- return true;
- }
-
- /**
- *
- * @brief 認証コードの絵に認証コードを一つずつ描きます
- *
- */
- プライベート関数 WriteCheckCodeToImage()
- {
- for ($i=0;$i<=$this->mCheckCodeNum;$i++)
- {
- $bg_color = imagecolorallocate ($ this-> ;mCheckImage, rand(0,255), rand(0,128), rand(0,255));
- $x = Floor($this->mCheckImageWidth/$this->mCheckCodeNum)*$i;
- $y = rand(0 ,$this->mCheckImageHeight-15);
- imagechar ($this->mCheckImage, 5, $x, $y, $this->mCheckCode[$i], $bg_color);
- }
- }
-
- /**
- *
- * @brief 出力確認コードの画像
- *
- */
- パブリック関数 OutCheckImage()
- {
- $this ->OutFileHeader();
- $this ->CreateCheckCode();
- $this ->CreateImage();
- $this - >SetDisturbColor();
- $this ->WriteCheckCodeToImage();
- imagepng($this->mCheckImage);
- imagedestroy($this->mCheckImage);
- }
- }
- $c_check_code_image = new CCheckCodeFile() ;
- //$c_check_code_image ->SetCheckImageWH(100,50);//確認コード画像のサイズを設定します
- $c_check_code_image ->OutCheckImage();
- ?>
コードをコピー
|