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 相关文章推荐
php中文件上传的安全问题
Oct 09 PHP
第十二节--类的自动加载
Nov 16 PHP
PHP与MySQL开发中页面出现乱码的一种解决方法
Jul 29 PHP
php删除文件夹及其文件夹下所有文件的函数代码
Jan 23 PHP
深入探讨<br />和 \r\n两者有什么区别??
Jun 05 PHP
ThinkPHP3.1数据CURD操作快速入门
Jun 19 PHP
使用PHP生成PDF方法详解
Jan 23 PHP
PHP 搜索查询功能实现
Nov 29 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
Dec 19 PHP
PHP中error_reporting函数用法详细介绍
Jun 11 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
Oct 13 PHP
PHP文件类型检查及fileinfo模块安装使用详解
May 09 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(视频)Http下载
2006/12/12 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
功能强大的PHP发邮件类
2016/08/29 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
PHP基于进程控制函数实现多线程
2020/12/09 PHP
js document.write()使用介绍
2014/02/21 Javascript
js打开windows上的可执行文件示例
2014/05/27 Javascript
php+ajax+jquery实现点击加载更多内容
2015/05/03 Javascript
JavaScript基础心法 数据类型
2018/03/05 Javascript
nodejs更改项目端口号的方法
2018/05/13 NodeJs
AngularJS中的作用域实例分析
2018/05/16 Javascript
详解Vue中使用Axios拦截器
2019/04/22 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
2015/02/04 Python
python从入门到精通(DAY 3)
2015/12/20 Python
Python实现TCP协议下的端口映射功能的脚本程序示例
2016/06/14 Python
对python借助百度云API对评论进行观点抽取的方法详解
2019/02/21 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
2019/10/09 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
python中round函数如何使用
2020/06/19 Python
碧欧泉美国官网:Biotherm美国
2016/08/31 全球购物
如果Session Bean得Remove方法一直都不被调用会怎么样
2012/07/14 面试题
心得体会范文
2014/01/04 职场文书
体育教师自我鉴定
2014/02/12 职场文书
班长竞选演讲稿
2014/04/24 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
学习之星事迹材料
2014/05/17 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
党员学习新党章思想汇报
2014/10/25 职场文书
2015年公司中秋节致辞
2015/07/31 职场文书
php修改word的实例方法
2021/11/17 PHP
德生TECSUN S-2000使用手册文字版
2022/05/10 无线电
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL