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 相关文章推荐
php4的session功能评述(二)
Oct 09 PHP
url decode problem 解决方法
Dec 26 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
Oct 05 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
Jun 19 PHP
PHP使用正则表达式清除超链接文本
Nov 12 PHP
php 表单提交大量数据发生丢失的解决方法
Mar 03 PHP
PHP中array_map与array_column之间的关系分析
Aug 19 PHP
php根据日期显示所在星座的方法
Jul 13 PHP
PHP PDOStatement::fetchColumn讲解
Jan 31 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
Jul 26 PHP
PHP的cookie与session原理及用法详解
Sep 27 PHP
laravel邮件发送的实现代码示例
Jan 31 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
phalcon框架使用指南
2016/02/23 PHP
学习YUI.Ext基础第一天
2007/03/10 Javascript
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
来自qq的javascript面试题
2010/07/24 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
实现音乐播放器的代码(html5+css3+jquery)
2015/08/04 Javascript
angularjs学习笔记之双向数据绑定
2015/09/26 Javascript
详解javascript数组去重问题
2015/11/06 Javascript
js将滚动条滚动到指定位置的简单实现方法
2016/06/25 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
微信小程序 rich-text的使用方法
2017/08/04 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
Vuex 单状态库与多模块状态库详解
2018/12/11 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
2019/09/27 Javascript
JS脚本实现定时到网站上签到/签退功能
2020/04/22 Javascript
使用python实现strcmp函数功能示例
2014/03/25 Python
python使用wxPython打开并播放wav文件的方法
2015/04/24 Python
Python实现的列表排序、反转操作示例
2019/03/13 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
Python实现某论坛自动签到功能
2019/08/20 Python
python-numpy-指数分布实例详解
2019/12/07 Python
使用python把xmind转换成excel测试用例的实现代码
2020/10/12 Python
Python plt 利用subplot 实现在一张画布同时画多张图
2021/02/26 Python
英国标志性奢侈品牌:Burberry
2016/07/28 全球购物
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
电话销售经理岗位职责
2013/12/07 职场文书
千元咖啡店的创业计划书范文
2013/12/29 职场文书
2014年三八妇女节活动总结
2014/03/01 职场文书
财会专业毕业生自荐信
2014/07/09 职场文书
地理科学专业自荐信
2014/09/01 职场文书