我imagettftext函数在图片上写入汉字字符串,可是却无法在浏览器中输出图片,使用imagepng($im,'x.png');可以将图片输出,但是如果直接输出到浏览器却不行,求高手调教啊。以下我的代码<?php
Header('Content-type: image/png');
putenv('GDFONTPATH=C:\WINDOWS\Fonts');
$button_text='Button按钮';
$button_text=$button_text.rand(30, 50);
$im=imagecreatetruecolor(400, 200);
$black=imagecolorallocate($im, 0, 0, 0);
$white=imagecolorallocate($im, 255, 255, 255);
imagefill($im, 0, 0, $black);
imagettftext($im,30,30, 0,150, $white,'MSYH.TTF', $button_text);
imagepng($im);//使用imagepng($im,'x.png');可以生成x.png,图片也有文字。
imagedestroy($im);
?>

解决方案 »

  1.   

    没有任何错误提示啊,浏览器一片空白,不过如果用ie浏览器的话就出现一些乱码。我尝试用imagestring替代imagettftext就可以正常输出了,前提是我要去掉中文字符……
      

  2.   

    没有任何错误提示啊,浏览器一片空白,不过如果用ie浏览器的话就出现一些乱码。我尝试用imagestring替代imagettftext就可以正常输出了,前提是我要去掉中文字符……
    imagestring不支持中文汉字。只能yong imagettftext.如果是乱码,证明是图片生成前可能有输出。
    检查下你的文件编码格式,请改为utf-8无bom的形式。
      

  3.   

    是utf-8编码的,我的默认文件格式就是utf-8。
      

  4.   

    utf-8有两种格式,一种是utf-8无bom的格式,一种是由bom头的,改为无bom头的
      

  5.   


    只要我不用Imagettftext函数就都正常了啊,难道用这个函数需要什么特别的条件?我已经纠结一个下午了
      

  6.   

    这只是你的程序文件带有 BOM 头。去掉就好了
      

  7.   

    Oracle?字体的路径是否有问题?写个完整的路径上去看看.
      

  8.   

    试试
    加一句
    $button_text=iconv("gbk","UTF-8",$button_text);
    在imagettftext($im,30,30, 0,150, $white,'MSYH.TTF', $button_text);之前,
    虽然页面是utf-8,但是你直接写入的汉字的编码方式也可能不同。
      

  9.   

    我也遇到相同问题,在单位电脑上运行没有错,但是在家运行发现文字没有显示,只有图片。<?php
    //水印效果
    header("content-type-:image/jpeg");
    $im=imagecreatefromjpeg("images/xx.jpg");
    $textcolor=imagecolorallocate($im,56,73,136);
    $fnt="C:/WINDOWS/Fonts/SIMKAI.TTF";
    $motto=iconv("gb2312","utf-8","长白山天池");
    imagettftext($im,100,0,600,340,$textcolor,$fnt,$motto);
    imagejpeg($im);
    imagedestroy($im);
    ?>
    请大侠帮忙,如果是PHP和GD库环境有问题的话,那应该如何检测和修改