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实现多服务器共享SESSION数据的方法
Mar 16 PHP
奇怪的PHP引用效率问题分析
Mar 23 PHP
PHP+Mysql+Ajax+JS实现省市区三级联动
May 23 PHP
php去掉文件前几行的方法
Jul 29 PHP
thinkPHP3.1验证码的简单实现方法
Apr 22 PHP
PHP那些琐碎的知识点(整理)
May 20 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
PHP实现找出链表中环的入口节点
Jan 16 PHP
php 后端实现JWT认证方法示例
Sep 04 PHP
使用PHPExcel导出Excel表
Sep 08 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
Nov 22 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解析url的三个示例
2014/01/20 PHP
一个经典的PHP文件上传类分享
2014/11/18 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
9个经典的PHP代码片段分享
2014/12/18 PHP
PHP正则表达式笔记与实例详解
2019/05/09 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
javascript数据类型示例分享
2015/01/19 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
ReactNative Image组件使用详解
2017/08/07 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
vue如何截取字符串
2019/05/06 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
layui异步加载table表中某一列数据的例子
2019/09/16 Javascript
Auto.JS实现抖音刷宝等刷视频app,自动点赞,自动滑屏,自动切换视频功能
2020/05/08 Javascript
Python字符串处理函数简明总结
2015/04/13 Python
python开发之str.format()用法实例分析
2016/02/22 Python
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
Javascript 高级手势使用介绍
2013/04/21 HTML / CSS
html2canvas生成的图片偏移不完整的解决方法
2020/05/19 HTML / CSS
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
Java servlet面试题
2012/03/04 面试题
公司端午节活动方案
2014/02/04 职场文书
会计专业个人自我鉴定
2014/03/21 职场文书
师德师风建设方案
2014/05/08 职场文书
学校教师培训工作总结
2015/10/14 职场文书
三好学生评选事迹材料(2016精选版)
2016/02/25 职场文书
SQLServer 日期函数大全(小结)
2021/04/08 SQL Server
css背景和边框标签实例详解
2021/05/21 HTML / CSS
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏