首页 > 开发 > PHP > 正文

PHP实现在图片中添加中文文字

2024-05-04 23:04:22
字体:
来源:转载
供稿:网友

<?php
/*
注意:需要gd库支持,需要iconv支持(php5已经包含不用加载)
*version 1.0
*@author sanshi(叁石)
*qq: 35047205
*msn: [email protected]
*create 2005/10/20
在图片中添加中文文字
*/
 /*
  param $image   图象资源
  param size     字体大小
  param angle    字体输出角度
  param showx    输出位置x坐标
  param showy    输出位置y坐标
  param font    字体文件位置
  param content  要在图片里显示的内容
 */
class showchinatext
{
 var $text='你好';
 var $font='fs.ttf';
 var $angle=0;
 var $size=50;
 var $showx=100;
 var $showy=100;
 function showchinatext($showtext='')
 {
   $this->text=!isset($showtext)?$showtext:$this->text;
  //exit();
  $this->show();
 }
 function createtext($instring)
 {
   $outstring="";
   $max=strlen($instring);
   for($i=0;$i<$max;$i++)
   {
   $h=ord($instring[$i]);
   if($h>=160 && $i<$max-1)
   {
              $outstring.="&#".base_convert(bin2hex(iconv("gb2312","ucs-2",substr    ($instring,$i,2))),16,10).";";
              $i++;
   }
   else
   {
              $outstring.=$instring[$i];
   }
   }
  return $outstring;
 }
 function createjpeg()
 {}
 function show()
 {
  //输出头内容
  header( "content-type: image/png");
  //建立图象
  $image = imagecreate(400,300);
  //定义颜色
  $red = imagecolorallocate($image,255,0,0);
  $white = imagecolorallocate($image,255,255,255);
  $black=imagecolorallocate($image,0,0,0);
  //填充颜色
  imagefilledrectangle($image,0,0,200,200,$red);
  //显示文字
  $txt=$this->createtext($this->text);
  //写入文字
  imagettftext($image,$this->size, $this->angle, $this->showx, $this->showy,$white,$this->font,$txt);
  //imagestring($image,5,50,10,$txt,$white);
  //显示图形
  imagejpeg($image);
  imagedestroy($image);
 }
}
//本类,并没有经过很好的考虑,只是简单的进行了封装,以后有机会,可能跟原来的图片类整合
?>
<?php
//使用示例
$s = new showchinatext();
?>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表