在perl和php中生成中文最關鍵的一點是需要設定乙個可以顯示中文的字型。
在linux平台上,我們可以把windows下的雅黑檔案拷過去。
在控制面板-字型裡可以拷貝雅黑字型檔案:
放在ubuntu的/usr/share/fonts/vista下。
perl的關鍵**類似下面所示:
gd::image->truecolor(1); my $image = newfrompng gd::image($imagepath) || die "can't open image: $!"; my $white = $image->colorallocate(255,255,255); my $scorecolor = $image->colorallocate(250,228,130); my $align = gd::text::align->new($image, valign => 'center', halign => 'left', color => $white ); $align->set_font($font_path, 9); $align->set(color => $white); $align->set_text($username); $align->draw($fontx, $fonty, 0); $image->string(gdmediumboldfont, $scorex, $scorey, $score, $scorecolor); return $image->png;
這樣我們可以生成如下所示的:
thinkphp包含乙個image類,裡面有乙個buildstring方法可以生成所需的驗證碼,但是只限於數字和英文本元。同時這個方法的**也有不少問題,例如引數沒有$size、$font的傳遞,高度寫死為22px等等。
所以我們可以自行實現乙個image類或者方法,對這個方法進行一些改進:
最主要的乙個改進是將:@imagestring($im, 5, 5, 5, $string, $color)
修改為@imagettftext($im, $size, $angel, $x, $y, $color, $font_path, $string)
$font無疑就是所需的字型路徑,如果需要可以切換多個字型的話,可以加入判斷:
$font_path = '/usr/share/fonts/vista/'; if($font_type == '雅黑') else if($font_type == '隸書') else
關於隨機中文字元的產生,可以呼叫thinkphp的org/util/string類的rand_string方法。
在ThinkPHP中生成中文驗證碼
在perl和php中生成中文最關鍵的一點是需要設定乙個可以顯示中文的字型。在linux平台上,我們可以把windows下的雅黑檔案拷過去。在控制面板 字型裡可以拷貝雅黑字型檔案 放在ubuntu的 usr share fonts vista下。perl的關鍵 類似下面所示 這樣我們可以生成如下所示的...
在delphi中生成GUID
什麼是 guid guid 的格式為8 4 4 4 12 xx x x x 其中每個 x 是 0 9 或 a f 範圍內的乙個十六進製制的數字。例如 6f9619ff 8b86 d011 b42d 00c04fc964ff 即為有效的 guid 值。為什麼要使用 guid 世界上的任何兩台計算機都不...
在matlab中生成m序列
實驗環境為matlab2013b 1 首先編寫乙個mseq.m檔案,內容為 function mseq m sequence fbconnection n length fbconnection n 2 n 1 register zeros 1,n 1 1 移位暫存器的初始狀態 mseq 1 reg...