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


Posted in PHP onOctober 30, 2014

本文实例讲述了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框架程序设计有所帮助。

PHP 相关文章推荐
E路文章系统PHP
Dec 11 PHP
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
Oct 12 PHP
php动态生成函数示例
Mar 21 PHP
ThinkPHP项目分组配置方法分析
Mar 23 PHP
php简单创建zip压缩文件的方法
Apr 30 PHP
Yii2中事务的使用实例代码详解
Sep 07 PHP
简单实现PHP留言板功能
Dec 21 PHP
php使用正则表达式获取字符串中的URL
Dec 29 PHP
Yii2 加载css、js 载静态资源的方法
Mar 10 PHP
php修改数组键名的方法示例
Apr 15 PHP
PHP中phar包的使用教程
Jun 14 PHP
Laravel框架路由管理简单示例
May 07 PHP
用 Composer构建自己的 PHP 框架之基础准备
Oct 30 #PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
Oct 30 #PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
Oct 30 #PHP
thinkphp中html:list标签传递多个参数实例
Oct 30 #PHP
如何让CI框架支持service层
Oct 29 #PHP
使用array_map简单搞定PHP删除文件、删除目录
Oct 29 #PHP
PHPUnit安装及使用示例
Oct 29 #PHP
You might like
PHP中动态显示签名和ip原理
2007/03/28 PHP
全新的PDO数据库操作类php版(仅适用Mysql)
2012/07/22 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
2014/01/22 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
js jquery获取随机生成id的服务器控件的三种方法
2013/07/11 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
JS+CSS实现的经典tab选项卡效果代码
2015/09/16 Javascript
基于JQuery实现分隔条的功能
2016/06/17 Javascript
Javascript 闭包详解及实例代码
2016/11/30 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2017/12/26 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
2018/08/12 Javascript
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
详解javascript函数写法大全
2019/03/25 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
Javascript 模拟mvc实现点餐程序案例详解
2020/12/24 Javascript
用实例说明python的*args和**kwargs用法
2013/11/01 Python
使用C#配合ArcGIS Engine进行地理信息系统开发
2016/02/19 Python
django 创建过滤器的实例详解
2017/08/14 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
详解js文件通过python访问数据库方法
2019/03/03 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
Python : turtle色彩控制实例详解
2020/01/19 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
2020/06/04 Python
铭万公司.net面试题笔试题
2014/07/20 面试题
英语专业毕业生求职简历的自我评价
2013/10/24 职场文书
2014年大学生自我评价
2014/01/19 职场文书
大学生工作自荐书
2014/06/16 职场文书
环保公益策划方案
2014/08/15 职场文书
关于读书的演讲稿500字
2014/08/27 职场文书
Python中requests做接口测试的方法
2021/05/30 Python