imageverify.php: <?php /** * 簡單圖像驗證碼 */ //產(chǎn)生隨機數(shù),0-100之間: echo mt_rand(0, 100); //為什么要循環(huán)0-15之間的數(shù)呢,?因為要實現(xiàn)最簡單的字母和數(shù)字混搭.十六進制0-9,,a-f //dechex():十進制轉(zhuǎn)換成十六進制 //echo dechex(mt_rand(0, 15)); //驗證碼一般為四位,所以,,需要創(chuàng)建一個四位的驗證碼 /*echo dechex(mt_rand(0, 15)); echo dechex(mt_rand(0, 15)); echo dechex(mt_rand(0, 15)); echo dechex(mt_rand(0, 15));*/ //上述方法雖可以實現(xiàn),。但效果不好,代碼重復,??捎孟铝械膄or循環(huán)進行實現(xiàn) for ($i=0;$i<4;$i++){ $rand .= dechex(mt_rand(0, 15)); //每循環(huán)一次,通過.拼加在后面.相當于:$rand = $rand.dechex(mt_rand(0, 15)); } /* echo $rand; echo '<br/>';*/ //接下來需要將上面的文本的驗證碼做成圖形 header('Content-Type:image/png'); $im = imagecreatetruecolor(75, 25); $blue = imagecolorallocate($im, 0, 102, 255); $whilte = imagecolorallocate($im, 255, 255, 255); imagefill($im, 0, 0, $blue); imagestring($im, 5, 20, 5, $rand, $whilte); imagepng($im); imagedestroy($im); ?> imageverify2.php: <?php /** * 加載已有的圖像進行做驗證碼 */ header('Content-Type:image/png'); //從png文件或url載入一張圖片,。用此方法,,是可以編輯圖像的 //通過魔法常量_FILE_進行來獲取文件所在的路徑 define('_DIR_', dirname(_FILE_).'\\'.'uploads\\'); //兩個反斜杠表示對一個路徑反斜杠進行轉(zhuǎn)義原樣輸出 $im = imagecreatefrompng(_DIR_.'222.png'); $white = imagecolorallocate($im, 255, 255, 255); //在載入的圖像中,加入小水印 //5表示字體的大小,,php本身提供1-5整型數(shù)值的字體,。 imagestring($im, 5, 0, 0, 'www.sina.com.cn', $white); imagepng($im); imagedestroy($im); ?> imageverify3.php: <?php /** * 加載已有的圖像進行做驗證碼 */ header('Content-Type:image/png'); //從png文件或url載入一張圖片。用此方法,,是可以編輯圖像的 //通過魔法常量_FILE_進行來獲取文件所在的路徑 define('_DIR_', dirname(_FILE_).'\\'.'uploads\\'); //兩個反斜杠表示對一個路徑反斜杠進行轉(zhuǎn)義原樣輸出 $im = imagecreatefrompng(_DIR_.'222.png'); $white = imagecolorallocate($im, 255, 255, 255); //iconv()編碼轉(zhuǎn)換函數(shù),。第一個參數(shù)是輸入的編碼(文件本身的編碼),、第2個參數(shù)是輸出顯的的編碼、第3個參數(shù)是需要轉(zhuǎn)換的字符串 $text = iconv('gbk', 'utf-8', '黃英昌'); //定義字體文件,。font字體還必須能支持中文 $font = 'C:\WINDOWS\Fonts\SIMHEI.TTF'; //黑體字體支持中文 //第2個對數(shù)是字體的大小,,第3個參數(shù)是旋轉(zhuǎn)角度,第4,、5個參數(shù)是x軸,、y軸坐標 imagettftext($im, 30, 0, 30, 30, $white, $font, $text); imagepng($im); imagedestroy($im); ?> imageverify4.php: <?php /** * 微縮圖:不但表面的大小改變了,容量也縮小了,,且不失真,。 */ header('Content-Type:image/png'); //從png文件或url載入一張圖片。用此方法,,是可以編輯圖像的 //通過魔法常量_FILE_進行來獲取文件所在的路徑 define('_DIR_', dirname(_FILE_).'\\'.'uploads\\'); //兩個反斜杠表示對一個路徑反斜杠進行轉(zhuǎn)義原樣輸出 //getimagesize()取得圖像大小,返回一個數(shù)組列表.list()中的變量名,,即數(shù)組下標,可以通過print_r(getimagesize(__DIR__.'222.png'))在瀏覽器中顯示出來 //獲取圖像的寬和高數(shù)值 list($width,$height) = getimagesize(_DIR_.'222.png'); //將原圖縮放成40% $_width = $width*0.4; $_height = $height*0.4; //接下來創(chuàng)建一個新圖 $im = imagecreatetruecolor($_width, $_height); //下面的工作是載入原圖,,將原圖復制到新圖上去 //載入原圖 $_im = imagecreatefrompng(_DIR_.'222.png'); //將原圖拷貝到新圖上,,最后輸出 imagecopyresampled($im, $_im, 0, 0, 0, 0, $_width, $_height, $width, $height); //將新圖輸出 imagepng($im); //資源銷毀 imagedestroy($im); imagedestroy($_im); ?> |
|