這篇文章帶給大家的內容是介紹php圖形影像處理之如何產生驗證碼?有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
現在網路上越來越離不開驗證碼了,不知道小夥伴們知不知利用php的GD函式庫就可以產生驗證碼。
先介紹幾個需要用的函數。
1.imagesetpixel()
這個函數可以進行像素點的繪製,在驗證碼中,我們稱之為🎜>
這個函數可以進行像素點的繪製,在驗證碼中,我們稱之為“雜訊”,簡直是神器。不知道小夥伴有沒有想起來驗證碼上的點點呢,就是用這個函數產生的。2.str_shuffle()
利用這個打亂字串,然後利用substr()截取給定的位數,就可以產生一個隨機字串啦。 實例:<?php $img = imagecreatetruecolor(100, 50); $black = imagecolorallocate($img, 0x00, 0x00, 0x00); $green = imagecolorallocate($img, 0x00, 0xFF, 0x00); $white = imagecolorallocate($img, 0xFF, 0xFF, 0xFF); imagefill($img, 0, 0, $white); //生成随机的验证码 $code = make(5); imagestring($img, 5, 10, 10, $code, $black); //加入噪点干扰 for ($i = 0; $i < 300; $i++) { imagesetpixel($img, rand(0, 100), rand(0, 100), $black); imagesetpixel($img, rand(0, 100), rand(0, 100), $green); } //加入线段干扰 for ($n = 0; $n <= 1; $n++) { imageline($img, 0, rand(0, 40), 100, rand(0, 40), $black); imageline($img, 0, rand(0, 40), 100, rand(0, 40), $white); } //输出验证码 header("content-type: image/png"); imagepng($img); //销毁图片 imagedestroy($img); //生产随机验证码的函数 function make($length) { $code = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; return substr(str_shuffle($code), 0, $length); }
效果圖:
總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。