ThinkPHP
本文实例讲述了ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法。分享给大家供大家参考。具体如下:
一、问题描述:
ThinkPHP做文字水印 ,今天做一个电子请帖,就把祝福语贴到图片上面,发现一直报错是取不到图片类型,比如gif,jpg等,并提示call an undefined function exif_imagetype()。
二、解决方法:
出现这个错误就是php.in 配置问题,打开即可: 代码如下:
<?php<br />/*<br />PHP添加文字水印类 V1.0<br />作者:Yu Tiedun<br />邮箱:<br />修改日期:2010-03-07<br />支持图片格式:gif, jpg, png<br />水印的位置自己根据需要调整<br />如能修改得更好,请发一份给我<br />*/<br />class WaterPrint<br />{<br />//类开始<br /> public $text, $color, $size, $font, $angle, $px, $py, $im;<br />//要添加的文字 <br />public function GetWpText($text)<br />{<br /> $this->text = $text;<br />}<br />//添加文字的颜色<br />public function GetFtColor($color)<br />{<br /> $this->color = $color;<br />}<br />//添加文字的字体<br />public function GetFtType($font)<br />{<br /> $this->font = $font;<br />}<br /> <br />//添加文字的大小<br />public function GetFtSize($size)<br />{<br /> $this->size = $size;<br />}<br />//文字旋转的角度<br />public function GetTtAngle($angle)<br />{<br /> $this->angle = $angle;<br />}<br />//添加文字的位置<br />public function GetTtPosit()<br />{<br /> $this->px = 10;<br /> $this->py = imagesy($this->im) - 20;<br />}<br />//添加文字水印 <br />public function AddWpText($pict)<br />{<br /> $ext = exif_imagetype($pict);<br /> switch ($ext) {<br /> case 1:<br /> $picext = "gif";<br /> $this->im = imagecreatefromgif($pict);<br /> break;<br /> case 2:<br /> $picext = "jpg";<br /> $this->im = imagecreatefromjpeg($pict);<br /> break;<br /> case 3:<br /> $picext = "png";<br /> $this->im = imagecreatefrompng($pict);<br /> break;<br /> default:<br /> $this->Errmsg("不支持的文件格式!");<br /> break;<br /> }<br /> //$this->picext = $picext;<br /> $this->GetTtPosit();<br /> $im = $this->im;<br /> $size = $this->size;<br /> $angle= $this->angle;<br /> $px = $this->px;<br /> $py = $this->py;<br /> $color= $this->color;<br /> $font = $this->font;<br /> $text = $this->text;<br /> $color= imagecolorallocate($im, 255, 0, 0);<br /> imagettftext($im, $size, $angle, $px, $py, $color, $font, $text);<br /> switch ($picext) {<br /> case "gif":<br /> imagegif($im, $pict);<br /> break;<br /> case "jpg":<br /> imagejpeg($im, $pict, 100);<br /> break;<br /> case "png":<br /> imagealphablending($im, false);<br /> imagesavealpha($im, true);<br /> imagepng($im, $pict);<br /> break;<br /> }<br /> imagedestroy($im);<br />}<br />//错误信息提示 <br />public function Errmsg($msg)<br />{<br /> echo "<script language='javascript'>alert('".$msg."');</script>";<br />}<br />//类结束 <i style="color:transparent">本¥文来源gaodai$ma#com搞$代*码*网(</i><strong>搞代gaodaima码</strong><br />}<br />?>
调用页面:index.php代码如下:
<?php<br />header("Content-type: text/html; charset=gbk");<br />require("wptext_class.php");<br />$pict = "images/button2.png"; //目标图片<br />//$text = "XP/Vista/Win7"; //要添加的文字<br />$text = "文字水印测试";<br />$text = iconv("gb2312","utf-8",$text); //防止中文乱码<br />$size = 20; //文字大小<br />$font = "c:/windows/fonts/arial.ttf"; //字体<br />$angle = 0; //旋转角度,逆时针<br />$wptext = new WaterPrint();<br />$wptext->GetWpText($text);<br />$wptext->GetFtSize($size);<br />$wptext->GetFtType($font);<br />$wptext->GetTtAngle($angle);<br />$wptext->AddWpText($pict);<br />$wptext = null;<br />?><br />查看结果
希望本文所述对大家的ThinkPHP框架程序设计有所帮助。