imagejpeg();不在主机服务器上生成图像,在localhost上正常工作

时间:2012-04-26 19:13:55

标签: php image image-processing jpeg

我有这个代码,它应该生成一个随机数的验证码图像,它在localhost上工作正常,但不在我的主机上,任何人都可以帮忙吗?谁能告诉我哪里出错了?

         <?php
 session_start();
header('Content-type: image/jpeg');

 $text= $_SESSION['secure'];

 $font_size =30;
 $image_width= 110;
 $image_height=40;

 $image=imagecreate($image_width,$image_height);
 imagecolorallocate($image, 255, 255, 255);
 $text_color = imagecolorallocate($image, 0, 0, 0);


 for($x=1; $x<=30; $x++){
$x1 = rand(1,100);
$x2 = rand(1,100);
$y1 = rand(1,100);
$y2 = rand(1,100);
 imageline($image, $x1, $x2, $y1, $y2, $text_color);
}

imagettftext($image, $font_size, 0, 15, 30, $text_color, 'font.ttf', $text);
imagejpeg($image);
?>

然后我将包含上述代码的文件包含在一个新的html文件中,其中我有我的表单并调用这样的图像:

 <img src="generate.php"/>

2 个答案:

答案 0 :(得分:1)

使用字符串hello测试您的脚本并且它可以正常运行

image generated

我非常肯定问题是PHP无法找到字体..尝试使用完整的系统路径

尝试

$font = dirname ( __FILE__ ) . "/verdana.ttf" ;
if(!is_file($font))
{
    die("Missing Font");
}

答案 1 :(得分:0)

确保脚本中没有前导空格或换行符。在尝试显示图像之前输出的任何文本都会导致其失败。