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.MVC的模板标签系统(一)
Sep 05 PHP
用Flash图形化数据(一)
Oct 09 PHP
Discuz Uchome ajaxpost小技巧
Jan 04 PHP
JS中encodeURIComponent函数用php解码的代码
Mar 01 PHP
php数组一对一替换实现代码
Aug 31 PHP
PHP实现服务器状态监控的方法
Dec 09 PHP
9个经典的PHP代码片段分享
Dec 18 PHP
php curl上传、下载、https登陆实现代码
Jul 23 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
Apr 10 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
Aug 12 PHP
Laravel的加密解密与哈希实例讲解
Mar 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
php Xdebug 调试扩展的安装与使用.
2010/03/13 PHP
PHP Curl多线程原理实例详解
2013/11/06 PHP
PHP多线程类及用法实例
2014/12/03 PHP
Yii框架实现多数据库配置和操作的方法
2017/05/25 PHP
phpmyadmin在宝塔面板里进不去的解决方案
2020/07/06 PHP
初学JavaScript_03(ExtJs Grid的简单使用)
2008/10/02 Javascript
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
2009/12/02 Javascript
javascript 常用功能总结
2012/03/18 Javascript
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
2013/01/23 Javascript
JavaScript 命名空间 使用介绍
2013/08/29 Javascript
网站基于flash实现的Banner图切换效果代码
2014/10/14 Javascript
jQuery实现当前页面标签高亮显示的方法
2015/03/10 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
jquery mobile界面数据刷新的实现方法
2016/05/28 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
2016/12/08 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
angularjs 缓存的使用详解
2018/03/19 Javascript
jquery实现动态添加附件功能
2018/10/23 jQuery
vue 解决数组赋值无法渲染在页面的问题
2019/10/28 Javascript
vue实现简单瀑布流布局
2020/05/28 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
对Python中type打开文件的方式介绍
2018/04/28 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
2020/01/25 Python
浅析CSS3 用text-overflow解决文字排版问题
2020/10/28 HTML / CSS
HTML5有哪些新特征
2015/12/01 HTML / CSS
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
医科大学生毕业的自我评价分享
2013/11/12 职场文书
旷课检讨书2000字
2014/01/14 职场文书
巧用 -webkit-box-reflect 倒影实现各类动效(小结)
2021/04/22 HTML / CSS
一篇文章弄懂Python关键字、标识符和变量
2021/07/15 Python
Nginx缓存设置案例详解
2021/09/15 Servers
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis