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 相关文章推荐
sourcesafe管理phpproj文件的补充说明(downmoon)
Apr 11 PHP
PHP小程序自动提交到自助友情连接
Nov 24 PHP
深入php self与$this的详解
Jun 08 PHP
与文件上传有关的php配置参数总结
Jun 14 PHP
PHP函数microtime()用法与说明
Dec 04 PHP
thinkphp常见路径用法分析
Dec 02 PHP
PHP 常用的header头部定义汇总
Jun 19 PHP
3种方法轻松处理php开发中emoji表情的问题
Jul 18 PHP
PHP实现的curl批量请求操作示例
Jun 06 PHP
PHP+Ajax实现的检测用户名功能简单示例
Feb 12 PHP
ThinkPHP 5.1 跨域配置方法
Oct 11 PHP
聊聊 PHP 8 新特性 Attributes
Aug 19 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
关于js和php对url编码的处理方法
2014/03/04 PHP
Codeigniter整合Tank Auth权限类库详解
2014/06/12 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
2014/11/25 PHP
Yii入门教程之目录结构、入口文件及路由设置
2014/11/25 PHP
学习php开源项目的源码指南
2014/12/21 PHP
利用“多说”制作留言板、评论系统
2015/07/14 PHP
php截取视频指定帧为图片
2016/05/16 PHP
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
Jquery 插件学习实例1 插件制作说明与tableUI优化
2010/04/02 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
2015/08/24 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
2016/01/25 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
jQuery常见的选择器及用法介绍
2016/12/20 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
JavaScript基础教程之如何实现一个简单的promise
2018/09/11 Javascript
Angular封装搜索框组件操作示例
2019/04/25 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
Python 在字符串中加入变量的实例讲解
2018/05/02 Python
Python3使用SMTP发送带附件邮件
2020/06/16 Python
python之当你发现QTimer不能用时的解决方法
2019/06/21 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
python适合做数据挖掘吗
2020/06/16 Python
python利用platform模块获取系统信息
2020/10/09 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
化工专业推荐信范文
2013/11/28 职场文书
上海世博会口号
2014/06/19 职场文书
教学改革问题查摆整改措施
2014/09/27 职场文书
2015年护士长个人工作总结
2015/04/24 职场文书
python实现自定义日志的具体方法
2021/05/28 Python
Python编程super应用场景及示例解析
2021/10/05 Python
浅谈mysql哪些情况会导致索引失效
2021/11/20 MySQL