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 相关文章推荐
信用卡效验程序
Oct 09 PHP
一些常用的php函数
Dec 06 PHP
PHP与MySQL开发中页面乱码的产生与解决
Mar 27 PHP
PHP 面向对象 final类与final方法
May 05 PHP
深入apache host的配置详解
Jun 09 PHP
set_exception_handler函数在ThinkPHP中的用法
Oct 31 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
May 21 PHP
php 指定范围内多个随机数代码实例
Jul 18 PHP
Zend Framework入门教程之Zend_Mail用法示例
Dec 08 PHP
php简单生成一组与多组随机字符串的方法
May 09 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
Jun 30 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
Sep 05 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的控制语句
2006/10/09 PHP
PHP下常用正则表达式整理
2010/10/26 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
2011/12/05 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
2013/06/24 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
javascript 伪数组实现方法
2010/10/11 Javascript
js实现checkbox全选、不选与反选的方法
2015/02/09 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
2015/04/26 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
nodejs制作爬虫实现批量下载图片
2017/05/19 NodeJs
vue中渲染对象中属性时显示未定义的解决
2020/07/31 Javascript
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
利用python程序帮大家清理windows垃圾
2017/01/15 Python
Python饼状图的绘制实例
2019/01/15 Python
对Python函数设计规范详解
2019/07/19 Python
matplotlib绘制多个子图(subplot)的方法
2019/12/03 Python
用python给csv里的数据排序的具体代码
2020/07/17 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
python PIL模块的基本使用
2020/09/29 Python
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
2014/04/08 HTML / CSS
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
精选鞋类、服装和配饰的全球领先目的地:Bodega
2021/02/27 全球购物
最新创业融资计划书
2014/01/19 职场文书
超市商业计划书
2014/05/04 职场文书
消防标语大全
2014/06/07 职场文书
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
解除劳动合同证明书
2014/09/26 职场文书
红色电影观后感
2015/06/18 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书
七年级英语教学反思
2016/02/15 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js