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加入动态flash文件的生成的支持
Oct 09 PHP
php中文本操作的类
Mar 17 PHP
利用discuz实现PHP大文件上传应用实例代码
Nov 14 PHP
PHP开启gzip页面压缩实例代码
Mar 11 PHP
使用php判断浏览器的类型和语言的函数代码
Feb 28 PHP
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
Apr 22 PHP
PHP反射使用实例和PHP反射API的中文说明
Jul 02 PHP
Thinkphp中import的几个用法详细介绍
Jul 02 PHP
php中memcache 基本操作实例
May 17 PHP
编写PHP脚本过滤用户上传的图片
Jul 03 PHP
PHP Header用于页面跳转时的几个注意事项
Oct 21 PHP
PHP数据库操作三:redis用法分析
Aug 16 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 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
2009/01/30 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
2017/10/25 PHP
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
js操作cookie保存浏览记录的方法
2015/12/25 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
AngularJS ng-style中使用filter
2016/09/21 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
html+javascript+bootstrap实现层级多选框全层全选和多选功能
2017/03/09 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
JS触摸事件、手势事件详解
2017/05/04 Javascript
vue父组件通过props如何向子组件传递方法详解
2017/08/16 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
ES6中let 和 const 的新特性
2018/09/03 Javascript
jQuery实现侧边栏隐藏与显示的方法详解
2018/12/22 jQuery
微信小程序实现滑动翻页效果(完整代码)
2019/12/06 Javascript
JavaScript中的全局属性与方法深入解析
2020/06/14 Javascript
vue $mount 和 el的区别说明
2020/09/11 Javascript
[01:05:56]Liquid vs VP Supermajor决赛 BO 第二场 6.10
2018/07/04 DOTA
python list使用示例 list中找连续的数字
2014/01/27 Python
python基础教程之序列详解
2014/08/29 Python
Python监控主机是否存活并以邮件报警
2015/09/22 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
python 读取DICOM头文件的实例
2018/05/07 Python
Python实现注册、登录小程序功能
2018/09/21 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
Python实现查找最小的k个数示例【两种解法】
2019/01/08 Python
opencv导入头文件时报错#include的解决方法
2019/07/31 Python
Python编写万花尺图案实例
2021/01/03 Python
Python绘制词云图之可视化神器pyecharts的方法
2021/02/23 Python
区优秀教师事迹材料
2014/02/10 职场文书
党员学习正风肃纪思想汇报
2014/09/12 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
基层党组织整改方案
2014/10/25 职场文书
高中班长竞选稿
2015/11/20 职场文书
如何通过cmd 连接阿里云服务器
2022/04/18 Servers