<?php?
require_once?'string.func.php';
//通過GD庫做驗證碼
?
?
????//創建畫布
????$width?=?80;
????$height?=?28;
????$image?=?imagecreatetruecolor?(?$width,?$height?);
????$white?=?imagecolorallocate?(?$image,?255,?255,?255?);
????$black?=?imagecolorallocate?(?$image,?0,?0,?0?);
????//用填充矩形填充畫布
????imagefilledrectangle?(?$image,?1,?1,?$width?-?2,?$height?-?2,?$white?);
????$type=1;
????$length=4;
????$chars?=?buildRandomString?(?$type,?$length?);
????$sess_name="verify";
????$_SESSION?[$sess_name]?=?$chars;
????$fontfiles?=?array?("SIMYOU.TTF");
?
????//由于字體文件比較大,就只保留一個字體,如果有需要的同學可以自己添加字體,字體在你的電腦中的fonts文件夾里有,直接運行輸入fonts就能看到相應字體
????for($i?=?9;?$i?<?$length;?$i?++)?{
????echo?"123";
????????$size?=?mt_rand?(?14,?18?);
????????$angle?=?mt_rand?(?-?15,?15?);
????????$x?=?5?+?$i?*?$size;
????????$y?=?mt_rand?(?20,?26?);
????????$fontfile?=?"../fonts/"?.?$fontfiles?[0];
????????$color?=?imagecolorallocate?(?$image,?mt_rand?(?50,?90?),?mt_rand?(?80,?200?),?mt_rand?(?90,?180?)?);
????????$text?=?substr?(?$chars,?$i,?1?);
????????imagettftext?(?$image,?$size,?$angle,?$x,?$y,?$color,?$fontfile,?$text?);
????}
????header?(?"content-type:image/gif"?);
????imagegif?(?$image?);
????imagedestroy?(?$image?);
4 回答

李FL
TA貢獻1條經驗 獲得超0個贊
? ? ? ? 我也遇到過相似的問題,可能是本機上的環境將報錯提示全部打開,這樣在輸出時有系統的未定義提示信息也跟著一起輸出了,這樣生成的圖片就可能顯示不正常,可以考慮在開頭加上 ?ini_set('display_errors',?'Off'); ? 來屏蔽報錯提示,試一試行不行。

綠豆露水
TA貢獻2條經驗 獲得超0個贊
查看字體文件的路徑。我也是同樣的問題,改了字體文件加載的路徑后,能正確顯示了。
改前:$fontfile = "../fonts/" . $fontfiles [mt_rand ( 0, count ( $fontfiles ) - 1 )];
改后:$fontfile = "fonts/" . $fontfiles [mt_rand ( 0, count ( $fontfiles ) - 1 )];
- 4 回答
- 0 關注
- 5599 瀏覽
添加回答
舉報
0/150
提交
取消