在Perl和PHP中生成中文圖片最關(guān)鍵的一點是需要設(shè)置一個可以顯示中文的字體。
在Linux平臺上,我們可以把windows下的雅黑文件拷過去。
在控制面板-字體里可以拷貝雅黑字體文件:
放在Ubuntu的/usr/share/fonts/vista下。
Perl的關(guān)鍵代碼類似下面所示:
這樣我們可以生成如下所示的圖片:
————————————————————————————
在PHP中,也可以采用同樣的方式生成包含中文的圖片。在此以ThinkPHP框架中開發(fā)中文驗證碼為例:
ThinkPHP包含一個image類,里面有一個buildString方法可以生成所需的驗證碼,但是只限于數(shù)字和英文字符。同時這個方法的代碼也有不少問題,例如參數(shù)沒有$size、$font的傳遞,高度寫死為22px等等。
所以我們可以自行實現(xiàn)一個image類或者方法,對這個方法進行一些改進:
最主要的一個改進是將:@imagestring($im, 5, 5, 5, $string, $color)
修改為@imagettftext($im, $size, $angel, $x, $y, $color, $font_path, $string)
$font無疑就是所需的字體路徑,如果需要可以切換多個字體的話,可以加入判斷:
關(guān)于隨機中文字符的產(chǎn)生,可以調(diào)用ThinkPHP的ORG/Util/String類的rand_string方法。
生成的圖片如下所示:
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
