フォントを自分でインポートし、必要に応じて変更します。 太字フォントの使用をお勧めします
- class Imagecode{
- private $width ;
- private $height;
- private $counts;
- private $distrubcode;
- private $fonturl;
- private $fonturlbg;
- private $session;
- /* *
- * ここに説明を入力してください...
- *
- * @paramunknown_type $width幅
- * @paramunknown_type $height高さ
- * @paramunknown_type $counts 文字数
- * @paramunknown_type $distrubcode ランダムな文字範囲
- * @param unknown_type $fonturl 重大コードフォント
- * @paramknown_type $fonturlbg 干渉文字フォント
- */
- function __construct($width = 120,$height = 30,$counts = 5,$distrubcode="1235467890qwertyuipkjhgfdaszxcvbnm",$fonturl="msyhbd.ttf",$fonturlbg='f.ttf') {
- $this->gt;width=$width;
- $this->gt;height=$height;
- $this->gt;counts=$counts;
- $this->gt;distrubcode=$distrubcode;
- $this->gt ;fonturl=$fonturl;
- $this->fonturlbg=$fonturlbg ? $fonturlbg :$fonturl;//干渉フォントが設定されていない場合に使用します
- $this->session=$this->sessioncode();
- session_start ();
- $_SESSION['code']=$this->session;
- }
-
- function imageout(){
- $im=$this->createimagesource();
- $this->setbackgroundcolor( $ im);
- $this->set_code($im);
- $this->setdistrubecode($im);
- ImageGIF($im);
- ImageDestroy($im);
- }
-
- private function createimagesource( ) {
- return imagecreate($this->width,$this->height);
- }
- プライベート関数 setbackgroundcolor($im){
- $bgcolor = ImageColorAllocate($im, rand(200,255),rand(200,255) , rand(200,255));//±3?°??é?
- imagefill($im,0,0,$bgcolor);
- }
- プライベート関数 setdistrubecode($im){
- $count_h=$this-> ; 高さ;
- $cou=floor($count_h*2);
- for($i=0;$i $x=rand(0,$this->width);
- $ y=rand(0,$this->高さ);
- $jiaodu=rand(0,360);
- $fontsize=rand(8,15);
- $fonturl=$this->fonturlbg;
- $originalcode = $ this->distrubcode;
- $countdistrub = strlen($originalcode);
- $dscode = $originalcode[rand(0,$countdistrub-1)];
- $color = ImageColorAllocate($im, rand(40,140),rand ( 40,140),rand(40,140));//干渉テキストカラー
- imagettftext($im,$fontsize,$jiaodu,$x,$y,$color,$fonturl,$dscode);
-
- }
- }
- private function set_code($im){
- $width=$this->width;
- $counts=$this->counts;
- $height=$this->height;
- $scode=$this->session ;
- $y=floor($height/2)+floor($height/4);
- $fontsize=rand(30,35);
- $fonturl=$this->fonturl;
-
- $counts=$this - >counts;
- for($i=0;$i $char=$scode[$i];
- $x=floor($width/$counts)*$i+ 8 ;
- $jiaodu=rand(-20,30);
- $color = ImageColorAllocate($im,rand(0,200),rand(50,200),rand(100,240));//文字色
- imagettftext($im,$ fontsize ,$jiaodu,$x,$y,$color,$fonturl,$char);
- }
-
-
-
- }
- プライベート関数 sessioncode(){
- $originalcode = $this->distrubcode;
- $countdistrub = strlen ($originalcode);
- $_dscode = "";
- $counts=$this->counts;
- for($j=0;$j $dscode = $originalcode[rand ( 0,$countdistrub-1)];
- $_dscode.=$dscode;
- }
- return $_dscode;
-
- }
- }
- Header("Content-type: image/GIF");
- $imagecode=new Imagecode ( 160,50);
- $imagecode->imageout();
-
コードをコピー
|