本文實例講述了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框架程序設計有所幫助。