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 zlib扩展实现页面GZIP压缩输出
Jun 17 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
May 02 PHP
file_get_contents获取不到网页内容的解决方法
Mar 07 PHP
CodeIgniter输出中文乱码的两种解决办法
Jun 12 PHP
PHP中exec与system用法区别分析
Sep 22 PHP
作为程序员必知的16个最佳PHP库
Dec 09 PHP
PHP中调用C/C++制作的动态链接库的教程
Mar 10 PHP
PHP Smarty模版简单使用方法
Mar 30 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
Sep 13 PHP
php变量与JS变量实现不通过跳转直接交互的方法
Aug 25 PHP
PHP的JSON封装、转变及输出操作示例
Sep 27 PHP
使用Git实现Laravel项目的自动化部署
Nov 24 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
在VS2008中编译MYSQL5.1.48的方法
2010/07/03 PHP
解析posix与perl标准的正则表达式区别
2013/06/17 PHP
PHP获取本周第一天和最后一天示例代码
2014/02/24 PHP
php多重接口的实现方法
2015/06/20 PHP
Yii2中SqlDataProvider用法示例
2016/09/22 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
input、button的不同type值在ajax提交表单时导致的陷阱
2009/02/24 Javascript
基于Jquery的简单&amp;简陋Tabs插件代码
2010/02/09 Javascript
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
Ext修改GridPanel数据和字体颜色、css属性等
2014/06/13 Javascript
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
js实现商品抛物线加入购物车特效
2020/11/18 Javascript
Seajs是什么及sea.js 由来,特点以及优势
2016/10/13 Javascript
JavaScript函数节流的两种写法
2017/04/07 Javascript
详解在Angularjs中ui-sref和$state.go如何传递参数
2017/04/24 Javascript
vue-cli中打包图片路径错误的解决方法
2017/10/26 Javascript
Node.js笔记之process模块解读
2018/05/31 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
2019/04/23 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
python保存文件方法小结
2018/07/27 Python
python 将列表中的字符串连接成一个长路径的方法
2018/10/23 Python
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
wxPython窗体拆分布局基础组件
2019/11/19 Python
Python 元组拆包示例(Tuple Unpacking)
2019/12/24 Python
基于logstash实现日志文件同步elasticsearch
2020/08/06 Python
如何在网站上添加谷歌定位信息
2016/04/16 HTML / CSS
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
英国乐购杂货:Tesco Groceries
2018/11/29 全球购物
不开辟用于交换数据的临时空间,如何完成字符串的逆序
2012/12/02 面试题
护士自我鉴定范文
2013/10/06 职场文书
预备党员2014全国两会学习心得体会
2014/03/10 职场文书
党员批评与自我批评(5篇)
2014/09/23 职场文书
让子弹飞观后感
2015/06/11 职场文书
SQL语句中JOIN的用法场景分析
2021/07/25 SQL Server
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS
Win10多屏显示如何设置?Win10电脑多屏显示设置操作方法
2022/07/07 数码科技