


PHP generates verification code, thumbnail and watermark image class sharing, verification code watermark_PHP tutorial
Jul 12, 2016 am 08:54 AMPHP generates verification codes, thumbnails and watermarks for class sharing. Verification code watermark
encapsulates a class that can generate verification codes, thumbnails, and watermarks for sharing. For everyone
<?php class image{ session_start(); //驗證碼類 static public function verify($code,$width=75,$height=25,$n=4){ header("content-type:image/png"); // 創(chuàng)建畫布 $img=imagecreatetruecolor($width,$height); // 設(shè)置背景色 $bgcolor=imagecolorallocate($img,mt_rand(200,255),mt_rand(200,255),rand(200,255)); // 將背景色填充 imagefill($img,0,0,$bgcolor); // 繪制五條弧線 for($i=0;$i<5;$i++){ $arccolor=imagecolorallocate($img,mt_rand(200,255),mt_rand(200,255),rand(200,255)); imagearc($img,mt_rand(5,($width-5)),mt_rand(5,($height-5)),mt_rand(5,($width-5)),mt_rand(5,($height-5)),mt_rand(0,360),mt_rand(0,360),$arccolor); } // 繪制一百個點 for($i=0;$i<100;$i++){ $pixelcolor=imagecolorallocate($img,mt_rand(200,255),mt_rand(200,255),rand(200,255)); imagesetpixel($img,mt_rand(1,($width-1)),mt_rand(1,($height-1)),$pixelcolor); } // 繪制五條線段 for($i=0;$i<5;$i++){ $linecolor=imagecolorallocate($img,mt_rand(200,255),mt_rand(200,255),rand(200,255)); imageline($img,mt_rand(1,($width-1)),mt_rand(1,($height-1)),mt_rand(1,($width-1)),mt_rand(1,($height-1)),$linecolor); } // 設(shè)置邊框顏色 $bdcolor=imagecolorallocate($img,mt_rand(150,200),mt_rand(150,200),rand(150,200)); // 繪制一個矩形無填充邊框 imagerectangle($img,0,0,($width-1),($height-1),$bdcolor); // 設(shè)置驗證碼字符串 $str=''; for($i=1;$i<=$n;$i++){ $str.=substr(str_shuffle($code),0,1); } $_SESSION['a']=$str; // for($i=0;$i<$n;$i++){ $textcolor=imagecolorallocate($img,mt_rand(100,150),mt_rand(100,150),mt_rand(100,150)); imagettftext($img,1/($n+1)*$width,mt_rand(-20,20),((1-$n/(5+$n))*$width/($n-1)+$i*1/($n+1)*$width),1/2*($height+3/5*$height),$textcolor,'1.ttf',substr($str,$i,1)); } // 打印圖像 imagepng($img); // 釋放資源 imagedestroy($img); return $str; } //縮略圖類 /* *$source需要縮略的圖片 */ static public function thumbnail($source,$deletesource=false,$width=180){ $info=getimagesize($source); //getimagesize方法獲得圖像的詳細(xì)信息 $createFun=str_replace('/','createfrom',$info['mime']); //將getimagesize中的['mime']中的/替換,變?yōu)閕magecreatefromjpeg方法 $src=$createFun($source); //創(chuàng)建圖像 $dst_w=$width; //縮略圖的寬 $dst_h=$width/$info[0]*$info[1]; //計算縮略圖的高 $dst=imagecreatetruecolor($dst_w,$dst_h); //新建一個真彩色圖像 imagecopyresampled($dst,$src,0,0,0,0,$dst_w,$dst_h,$info['0'],$info['1']); //重采樣拷貝部分圖像并調(diào)整大小 $saveFun=str_replace('/','',$info['mime']); //設(shè)置保存函數(shù) $ext=strrchr($source,'.'); //strrchr查找指定字符在字符串中的最后一次出現(xiàn),返回包括其自身在內(nèi)的剩余的字符串 $thumbnailName=str_replace($ext,'',$source).'_thumbnail'.$ext; //設(shè)置保存路徑 if(!$deletesource){ $saveFun($dst,$thumbnailName); //保存圖像 }else{ $saveFun($dst,$thumbnailName); unlink($source); //刪除原圖 } imagedestroy($src); //銷毀資源 imagedestroy($dst); //銷毀資源 return $thumbnailName; } //水印圖類 /* *$srcing水印圖 *$dsting原圖 */ static public function watermark($dstimg,$srcimg){ $dstinfo=getimagesize($dstimg); //getimagesize方法獲取該圖片的詳細(xì)信息(該方法返回的是一個詳細(xì)的數(shù)組) $srcinfo=getimagesize($srcimg); $createdst=str_replace('/','createfrom',$dstinfo['mime']); //將getimagesize方法返回的數(shù)組中的mime值中的/替換,結(jié)果為imagecreatefromjpeg $createsrc=str_replace('/','createfrom',$srcinfo['mime']); $dst=$createdst($dstimg); //替換后為imagecreatefromjpeg函數(shù),創(chuàng)建一個圖像 $dst_w=imagesx($dst); //獲取大圖的寬 $dst_h=imagesy($dst); //獲取大圖的高 $src=$createsrc($srcimg); //替換后為imagecreatefromjpeg函數(shù),創(chuàng)建一個圖像 $src_w=imagesx($src); //獲取水印圖的寬 $src_h=imagesy($src); //獲取水印圖的高 $watermaker=imagecopy($dst,$src,($dst_w-$src_w),($dst_h-$src_h),0,0,$src_w,$src_h); //將水印圖復(fù)制在大圖上 $saveFun=str_replace('/','',$dstinfo['mime']); //將getimagesize返回數(shù)組中的['mime']中的斜杠替換為空,替換后的值為imagejpeg,即為保存函數(shù) $ext=strrchr($dstimg,'.'); //strrchr查找指定字符在字符串中的最后一次出現(xiàn),返回包括其自身在內(nèi)的剩余的字符串 $watermaker=str_replace($ext,'',$dstimg).'_water'.time().$ext; //保存名 $saveFun($dst,$watermaker); //保存圖片,第一個參數(shù)為要保存的圖片,第二個參數(shù)為保存路徑或保存名 imagedestroy($dst); //銷毀資源 imagedestroy($src); //銷毀資源 return $watermaker; } } ?>
Articles you may be interested in:
- php image verification code code
- PHP dynamically randomly generated verification code code
- PHP verification code code ( Latest modification, fully customized! )
- A beautiful PHP verification code class (share)
- Solution to "the image cannot be displayed because of its own errors" when PHP generates the verification code
- PHP generates image verification code, click to switch instance
- php generate verification code function
- thinkphp3.2 click refresh to generate verification code
- PHP implementation to generate verification code example Share

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

PHPbecamepopularforwebdevelopmentduetoitseaseoflearning,seamlessintegrationwithHTML,widespreadhostingsupport,andalargeecosystemincludingframeworkslikeLaravelandCMSplatformslikeWordPress.Itexcelsinhandlingformsubmissions,managingusersessions,interacti

TosettherighttimezoneinPHP,usedate_default_timezone_set()functionatthestartofyourscriptwithavalididentifiersuchas'America/New_York'.1.Usedate_default_timezone_set()beforeanydate/timefunctions.2.Alternatively,configurethephp.inifilebysettingdate.timez

TovalidateuserinputinPHP,usebuilt-invalidationfunctionslikefilter_var()andfilter_input(),applyregularexpressionsforcustomformatssuchasusernamesorphonenumbers,checkdatatypesfornumericvalueslikeageorprice,setlengthlimitsandtrimwhitespacetopreventlayout

ThePhpfunctionSerialize () andunserialize () AreusedtoconvertcomplexdaTastructdestoresintostoraSandaBackagain.1.Serialize () c OnvertsdatalikecarraysorobjectsraystringcontainingTypeandstructureinformation.2.unserialize () Reconstruct theoriginalatataprom

You can embed PHP code into HTML files, but make sure that the file has an extension of .php so that the server can parse it correctly. Use standard tags to wrap PHP code, insert dynamic content anywhere in HTML. In addition, you can switch PHP and HTML multiple times in the same file to realize dynamic functions such as conditional rendering. Be sure to pay attention to the server configuration and syntax correctness to avoid problems caused by short labels, quotation mark errors or omitted end labels.

The key to writing clean and easy-to-maintain PHP code lies in clear naming, following standards, reasonable structure, making good use of comments and testability. 1. Use clear variables, functions and class names, such as $userData and calculateTotalPrice(); 2. Follow the PSR-12 standard unified code style; 3. Split the code structure according to responsibilities, and organize it using MVC or Laravel-style catalogs; 4. Avoid noodles-style code and split the logic into small functions with a single responsibility; 5. Add comments at key points and write interface documents to clarify parameters, return values ??and exceptions; 6. Improve testability, adopt dependency injection, reduce global state and static methods. These practices improve code quality, collaboration efficiency and post-maintenance ease.

Yes,youcanrunSQLqueriesusingPHP,andtheprocessinvolveschoosingadatabaseextension,connectingtothedatabase,executingqueriessafely,andclosingconnectionswhendone.Todothis,firstchoosebetweenMySQLiorPDO,withPDObeingmoreflexibleduetosupportingmultipledatabas
