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批量查询WordPress留言者E-mail地址实现方法
Feb 15 PHP
PHP扩展程序实现守护进程
Apr 16 PHP
php获取json数据所有的节点路径
May 17 PHP
PHP 9 大缓存技术总结
Sep 17 PHP
PHP浮点比较大小的方法
Feb 14 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
php微信支付接口开发程序
Aug 02 PHP
Zend Framework框架实现类似Google搜索分页效果
Nov 25 PHP
PHP实现的下载远程文件类定义与用法示例
Jul 05 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
PHP+Session防止表单重复提交的解决方法
Apr 09 PHP
PHP策略模式写法
Apr 01 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 stripslashes和addslashes的区别
2014/02/03 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
2015/03/17 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
2016/01/12 PHP
php-msf源码详解
2017/12/25 PHP
PHP数组实际占用内存大小原理解析
2020/12/11 PHP
JQuery中each()的使用方法说明
2010/08/19 Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
2012/07/25 Javascript
谈谈关于JavaScript 中的 MVC 模式
2013/04/11 Javascript
js判断滚动条是否已到页面最底部或顶部实例
2014/11/20 Javascript
JavaScript中constructor()方法的使用简介
2015/06/05 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
jquery判断对象是否为空并遍历对象的简单实例
2016/07/26 Javascript
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
2016/12/28 Javascript
BootStrap3中模态对话框的使用
2017/01/06 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
详解多页应用 Webpack4 配置优化与踩坑记录
2018/10/16 Javascript
JavaScript ES6中的简写语法总结与使用技巧
2018/12/30 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
Vue+element 解决浏览器自动填充记住的账号密码问题
2019/06/11 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
Python 由字符串函数名得到对应的函数(实例讲解)
2017/08/10 Python
Python单向链表和双向链表原理与用法实例详解
2018/08/31 Python
Python3操作Excel文件(读写)的简单实例
2019/09/02 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
python之MSE、MAE、RMSE的使用
2020/02/24 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
Html5上传图片 移动端、PC端通用代码
2016/06/08 HTML / CSS
怀旧香味蜡烛:Homesick
2019/11/02 全球购物
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
留学生如何写好自荐信
2013/12/27 职场文书
高一历史教学反思
2014/01/13 职场文书
旅游业大学生创业计划书
2014/01/31 职场文书
主题婚礼策划方案
2014/02/10 职场文书
房产公证委托书范本
2014/09/20 职场文书
详解MongoDB的条件查询和排序
2021/06/23 MongoDB
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL