日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php大号字体代码,支持中文字母数字、自定义字体php验证码代码

發布時間:2025/3/20 php 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php大号字体代码,支持中文字母数字、自定义字体php验证码代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/*

* Captcha Class base on PHP GD Lib

* @author Design

* @version 1.0

* @demo

* include('captchaClass.php');

* $captchaDemo=new Captcha();

* $captchaDemo->createImage();

*/

class Captcha{

//@定義驗證碼圖片高度

private $height;

//@定義驗證碼圖片寬度

private $width;

//@定義驗證碼字符個數

private $textNum;

//@定義驗證碼字符內容

private $textContent;

//@定義字符顏色

private $fontColor;

//@定義隨機出的文字顏色

private $randFontColor;

//@定義字體大小

private $fontSize;

//@定義字體

private $fontFamily;

//@定義背景顏色

private $bgColor;

//@定義隨機出的背景顏色

private $randBgColor;

//@定義字符語言

private $textLang;

//@定義干擾點數量

private $noisePoint;

//@定義干擾線數量

private $noiseLine;

//@定義是否扭曲

private $distortion;

//@定義扭曲圖片源

private $distortionImage;

//@定義是否有邊框

private $showBorder;

//@定義驗證碼圖片源

private $image;

//@Constructor 構造函數

public function Captcha(){

$this->textNum=4;

$this->fontSize=16;

$this->fontFamily='c:\windows\fontsSIMYOU.ttf';//設置中文字體,可以改成linux的目錄

$this->textLang='en';

$this->noisePoint=30;

$this->noiseLine=3;

$this->distortion=false;

$this->showBorder=false;

}

//@設置圖片寬度

public function setWidth($w){

$this->width=$w;

}

//@設置圖片高度

public function setHeight($h){

$this->height=$h;

}

//@設置字符個數

public function setTextNumber($textN){

$this->textNum=$textN;

}

//@設置字符顏色

public function setFontColor($fc){

$this->fontColor=sscanf($fc,'#%2x%2x%2x');

}

//@設置字號

public function setFontSize($n){

$this->fontSize=$n;

}

//@設置字體

public function setFontFamily($ffUrl){

$this->fontFamily=$ffUrl;

}

//@設置字符語言

public function setTextLang($lang){

$this->textLang=$lang;

}

//@設置圖片背景

public function setBgColor($bc){

$this->bgColor=sscanf($bc,'#%2x%2x%2x');

}

//@設置干擾點數量

public function setNoisePoint($n){

$this->noisePoint=$n;

}

//@設置干擾線數量

public function setNoiseLine($n){

$this->noiseLine=$n;

}

//@設置是否扭曲

public function setDistortion($b){

$this->distortion=$b;

}

//@設置是否顯示邊框

public function setShowBorder($border){

$this->showBorder=$border;

}

//@初始化驗證碼圖片

public function initImage(){

if(empty($this->width)){$this->width=floor($this->fontSize*1.3)*$this->textNum+10;}

if(empty($this->height)){$this->height=$this->fontSize*2;}

$this->image=imagecreatetruecolor($this->width,$this->height);

if(empty($this->bgColor)){

$this->randBgColor=imagecolorallocate($this->image,mt_rand(100,255),mt_rand(100,255),mt_rand(100,255));

}else{

$this->randBgColor=imagecolorallocate($this->image,$this->bgColor[0],$this->bgColor[1],$this->bgColor[2]);

}

imagefill($this->image,0,0,$this->randBgColor);

}

//@產生隨機字符

public function randText($type){

$string='';

switch($type){

case 'en':

$str='ABCDEFGHJKLMNPQRSTUVWXY3456789';

for($i=0;$itextNum;$i++){

$string=$string.','.$str[mt_rand(0,29)];

}

break;

case 'cn':

for($i=0;$itextNum;$i++) {

$string=$string.','.chr(rand(0xB0,0xCC)).chr(rand(0xA1,0xBB));

}

$string=iconv('GB2312','UTF-8',$string); //轉換編碼到utf8

break;

}

return substr($string,1);

}

//@輸出文字到驗證碼

public function createText(){

$textArray=explode(',',$this->randText($this->textLang));

$this->textContent=join('',$textArray);

if(empty($this->fontColor)){

$this->randFontColor=imagecolorallocate($this->image,mt_rand(0,100),mt_rand(0,100),mt_rand(0,100));

}else{

$this->randFontColor=imagecolorallocate($this->image,$this->fontColor[0],$this->fontColor[1],$this->fontColor[2]);

}

for($i=0;$itextNum;$i++){

$angle=mt_rand(-1,1)*mt_rand(1,20);

imagettftext($this->image,$this->fontSize,$angle,5+$i*floor($this->fontSize*1.3),floor($this->height*0.75),$this->randFontColor,$this->fontFamily,$textArray[$i]);

}

}

//@生成干擾點

public function createNoisePoint(){

for($i=0;$inoisePoint;$i++){

$pointColor=imagecolorallocate($this->image,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));

imagesetpixel($this->image,mt_rand(0,$this->width),mt_rand(0,$this->height),$pointColor);

}

}

//@產生干擾線

public function createNoiseLine(){

for($i=0;$inoiseLine;$i++) {

$lineColor=imagecolorallocate($this->image,mt_rand(0,255),mt_rand(0,255),20);

imageline($this->image,0,mt_rand(0,$this->width),$this->width,mt_rand(0,$this->height),$lineColor);

}

}

//@扭曲文字

public function distortionText(){

$this->distortionImage=imagecreatetruecolor($this->width,$this->height);

imagefill($this->distortionImage,0,0,$this->randBgColor);

for($x=0;$xwidth;$x++){

for($y=0;$yheight;$y++){

$rgbColor=imagecolorat($this->image,$x,$y);

imagesetpixel($this->distortionImage,(int)($x+sin($y/$this->height*2*M_PI-M_PI*0.5)*3),$y,$rgbColor);

}

}

$this->image=$this->distortionImage;

}

//@生成驗證碼圖片

public function createImage(){

$this->initImage(); //創建基本圖片

$this->createText(); //輸出驗證碼字符

if($this->distortion){$this->distortionText();} //扭曲文字

$this->createNoisePoint(); //產生干擾點

$this->createNoiseLine(); //產生干擾線

if($this->showBorder){imagerectangle($this->image,0,0,$this->width-1,$this->height-1,$this->randFontColor);} //添加邊框

imagepng($this->image);

imagedestroy($this->image);

if($this->distortion){imagedestroy($this->$distortionImage);}

return $this->textContent;

}

}

?>使用方法:

//session_start();

header("Content-type:image/png");

include('captcha5_class.php');

$captcha5=new Captcha();

//@設置驗證碼寬度

//$captcha5->setWidth(200);

//@設置驗證碼高度

//$captcha5->setHeight(50);

//@設置字符個數

$captcha5->setTextNumber(5);

//@設置字符顏色

//$captcha5->setFontColor('#ff9900');

//@設置字號大小

//$captcha5->setFontSize(25);

//@設置字體

$captcha5->setFontFamily('c:\windows\fonts\STXINGKA.TTF');

//@設置語言

$captcha5->setTextLang('cn');

//@設置背景顏色

//$captcha5->setBgColor('#000000');

//@設置干擾點數量

//$captcha5->setNoisePoint(600);

//@設置干擾線數量

//$captcha5->setNoiseLine(10);

//@設置是否扭曲

//$captcha5->setDistortion(true);

//@設置是否顯示邊框

$captcha5->setShowBorder(true);

//輸出驗證碼

$code=$captcha5->createImage();

//$_SESSION['captchaCode']['content']=$code;

//$_SESSION['captchaCode']['time']=microtime();

?>

總結

以上是生活随笔為你收集整理的php大号字体代码,支持中文字母数字、自定义字体php验证码代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。