ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法

  本文实例讲述了ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法。分享给大家供大家参考。具体如下:

  一、问题描述:

  ThinkPHP做文字水印 ,今天做一个电子请帖,就把祝福语贴到图片上面,发现一直报错是取不到图片类型,比如gif,jpg等,并提示call an undefined function exif_imagetype()。

  二、解决方法:

  出现这个错误就是php.in 配置问题,打开即可:打开扩展 extension=php_exif.dll 如果再不行就把extension=php_mbstring.dll ,放到extension=php_exif.dll前边

  注意:extension=php_exif.dll 扩展要打开

  类文件:wptext_class.php代码如下:

  

复制代码 代码如下:
<?php

  /*

  PHP添加文字水印类 V1.0

  作者:Yu Tiedun

  邮箱:

  修改日期:2010-03-07

  支持图片格式:gif, jpg, png

  水印的位置自己根据需要调整

  如能修改得更好,请发一份给我

  */

  class WaterPrint

  {

  //类开始

  public $text, $color, $size, $font, $angle, $px, $py, $im;

  //要添加的文字

  public function GetWpText($text)

  {

  $this->text = $text;

  }

  //添加文字的颜色

  public function GetFtColor($color)

  {

  $this->color = $color;

  }

  //添加文字的字体

  public function GetFtType($font)

  {

  $this->font = $font;

  }

  //添加文字的大小

  public function GetFtSize($size)

  {

  $this->size = $size;

  }

  //文字旋转的角度

  public function GetTtAngle($angle)

  {

  $this->angle = $angle;

  }

  //添加文字的位置

  public function GetTtPosit()

  {

  $this->px = 10;

  $this->py = imagesy($this->im) - 20;

  }

  //添加文字水印

  public function AddWpText($pict)

  {

  $ext = exif_imagetype($pict);

  switch ($ext) {

  case 1:

  $picext = "gif";

  $this->im = imagecreatefromgif($pict);

  break;

  case 2:

  $picext = "jpg";

  $this->im = imagecreatefromjpeg($pict);

  break;

  case 3:

  $picext = "png";

  $this->im = imagecreatefrompng($pict);

  break;

  default:

  $this->Errmsg("不支持的文件格式!");

  break;

  }

  //$this->picext = $picext;

  $this->GetTtPosit();

  $im   = $this->im;

  $size = $this->size;

  $angle= $this->angle;

  $px   = $this->px;

  $py   = $this->py;

  $color= $this->color;

  $font = $this->font;

  $text = $this->text;

  $color= imagecolorallocate($im, 255, 0, 0);

  imagettftext($im, $size, $angle, $px, $py, $color, $font, $text);

  switch ($picext) {

  case "gif":

  imagegif($im, $pict);

  break;

  case "jpg":

  imagejpeg($im, $pict, 100);

  break;

  case "png":

  imagealphablending($im, false);

  imagesavealpha($im, true);

  imagepng($im, $pict);

  break;

  }

  imagedestroy($im);

  }

  //错误信息提示

  public function Errmsg($msg)

  {

  echo "<script language='javascript'>alert('".$msg."');</script>";

  }

  //类结束

  }

  ?>

  调用页面:index.php代码如下:

  

复制代码 代码如下:
<?php

  header("Content-type: text/html; charset=gbk");

  require("wptext_class.php");

  $pict = "images/button2.png"; //目标图片

  //$text = "XP/Vista/Win7"; //要添加的文字

  $text = "文字水印测试";

  $text = iconv("gb2312","utf-8",$text); //防止中文乱码

  $size = 20; //文字大小

  $font = "c:/windows/fonts/arial.ttf"; //字体

  $angle = 0; //旋转角度,逆时针

  $wptext = new WaterPrint();

  $wptext->GetWpText($text);

  $wptext->GetFtSize($size);

  $wptext->GetFtType($font);

  $wptext->GetTtAngle($angle);

  $wptext->AddWpText($pict);

  $wptext = null;

  ?>

  <a href="images/button2.png" target="_blank">查看结果</a>

  希望本文所述对大家的ThinkPHP框架程序设计有所帮助。