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 编写大型网站问题集
May 07 PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
Jul 28 PHP
探讨php define()函数及defined()函数使用详解
Jun 09 PHP
PHP模板引擎Smarty的缓存使用总结
Apr 24 PHP
ThinkPHP CURD方法之limit方法详解
Jun 18 PHP
CI框架入门示例之数据库取数据完整实现方法
Nov 05 PHP
php绘图之生成饼状图的方法
Jan 24 PHP
php取得字符串首字母的方法
Mar 25 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
jquery+thinkphp实现跨域抓取数据的方法
Oct 15 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
Feb 07 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 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 和 MySQL 开发的 8 个技巧
2006/10/09 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
2013/06/24 PHP
php计算数组不为空元素个数的方法
2014/01/27 PHP
php实现的XML操作(读取)封装类完整实例
2017/02/23 PHP
网站上面有这种切换效果
2006/06/26 Javascript
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
简单的JavaScript互斥锁分享
2014/02/02 Javascript
使用typeof判断function是否存在于上下文
2014/08/14 Javascript
JavaScript使用Replace进行字符串替换的方法
2015/04/14 Javascript
深入理解jQuery之事件移除
2016/06/02 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
JS动态添加的div点击跳转到另一页面实现代码
2017/09/30 Javascript
原生js封装添加class,删除class的实例
2017/11/06 Javascript
详解.vue文件解析的实现
2018/06/11 Javascript
vue实现动态列表点击各行换色的方法
2018/09/13 Javascript
简谈创建React Component的几种方式
2019/06/15 Javascript
Vue路由切换页面不更新问题解决方案
2020/07/10 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
2020/07/19 Javascript
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
在Python中使用SQLite的简单教程
2015/04/29 Python
python如何对实例属性进行类型检查
2018/03/20 Python
Python之list对应元素求和的方法
2018/06/28 Python
Django视图扩展类知识点详解
2019/10/25 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
AUC计算方法与Python实现代码
2020/02/28 Python
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
关于Assembly命名空间的三个面试题
2015/07/23 面试题
会计系中文个人求职信
2013/12/24 职场文书
编辑找工作求职信分享
2014/01/03 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
公司开会通知
2015/04/20 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL