一聚教程网:一个值得你收藏的教程网站

热门教程

thinkphp做文字水印,并解决call an undefined function exif_imagetype()

时间:2022-06-25 02:34:10 编辑:袖梨 来源:一聚教程网

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添加文字水印类 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 "";
    }
//类结束
}

?>


调用页面:index.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;
?>
查看结果

热门栏目