我想使用PHP imagettftext生成驗證碼圖像。以下是我的代碼。它給出了一個空的圖像。我想解決這個問題。生成驗證碼圖像PHP
我測試了代碼,但無法找到爲什麼圖像不是bieng顯示,雖然我的隨機文本被傳遞到驗證碼圖像生成功能。
<?php
function generateRandomString($length = 10) {
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
return $randomString;
}
function generateCaptchaImage($text = 'good'){
echo $text;
echo 'OK';
// Set the content-type
header('Content-Type: image/png');
$width = 200;
$height = 30;
$font = 'ThisisKeSha.ttf';
// Create the image
$im = imagecreatetruecolor($width, $height);
//ADD NOISE - DRAW background squares
$square_count = 6;
for ($i = 0; $i < 10; $i++) {
$cx = (int)rand(0, $width/2);
$cy = (int)rand(0, $height);
$h = $cy + (int)rand(0, $height/5);
$w = $cx + (int)rand($width/3, $width);
imagefilledrectangle($im, $cx, $cy, $w, $h, $white);
}
//ADD NOISE - DRAW ELLIPSES
$ellipse_count = 5;
for ($i = 0; $i < $ellipse_count; $i++) {
$cx = (int)rand(-1*($width/2), $width + ($width/2));
$cy = (int)rand(-1*($height/2), $height + ($height/2));
$h = (int)rand($height/2, 2*$height);
$w = (int)rand($width/2, 2*$width);
imageellipse($im, $cx, $cy, $w, $h, $grey);
}
// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
imagepng($im);
}
$randomString = generateRandomString();
generateCaptchaImage($randomString);
?>
任何錯誤日誌? –
'$ white'和'$ black'沒有定義。刪除'echo $ text;'和'echo'OK';'。您的服務器上是否存在'ThisisKeSha.ttf',並且位於與此相同的目錄中? –
非常感謝$白和$黑!!!! –