解决GD中文乱码问题

  今天仔细研究了下GD的一些相关技术,顺手也研究下GD中文乱码的问题。

  使用GD库输出中文字符串,调用imagestring是没有用的。需要使用imagettftext()函数。imagettftext函数的具体使用就参考手册啦。

  下面给个使用实例:

  

  $pic=imagecreate(250,30);

  $black=imagecolorallocate($pic,0,0,0);

  $white=imagecolorallocate($pic,255,255,255);

  $font="C://WINDOWS//Fonts//simhei.ttf";  //这里的路进需要注意下,必须是字符的路径

  $str ='php'.iconv('gb2312','utf-8','面对对象')." www.phpobject.net";

  imagettftext($pic,10,0,10,20,$white,$font,$str);

  

  前面我给出一个简单的GD水印实例,只举例说明了使用图片如何水印的,这里给出一个文字水印的简单代码。

  

  <?php

  $pic=imagecreate(250,30);

  $black=imagecolorallocate($pic,0,0,0);

  $white=imagecolorallocate($pic,255,255,255);

  $font="C://WINDOWS//Fonts//simhei.ttf";

  $str ='php'.iconv('gb2312','utf-8','面对对象')." www.phpobject.net";

  imagettftext($pic,10,0,10,20,$white,$font,$str);

  header("Content-type: image/jpeg");

  $filename='../src/images/photo.jpg';

  $im=imagecreatefromjpeg($filename);

  imagecopymerge($im,$pic,0,0,0,0,250,30,50);

  imagejpeg($im);

  ?>