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 动态添加记录
Mar 10 PHP
PHP 面向对象 PHP5 中的常量
May 05 PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
Dec 29 PHP
fleaphp crud操作之findByField函数的使用方法
Apr 23 PHP
个人写的PHP验证码生成类分享
Aug 21 PHP
php微信公众平台配置接口开发程序
Sep 22 PHP
PHP会话控制实例分析
Dec 24 PHP
php实现水印文字和缩略图的方法示例
Dec 29 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
Jun 17 PHP
php+laravel依赖注入知识点总结
Nov 04 PHP
PHP+MySql实现一个简单的留言板
Jul 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
PHP中一些可以替代正则表达式函数的字符串操作函数
2014/11/17 PHP
php读取csv数据保存到数组的方法
2015/01/03 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
分析php://output和php://stdout的区别
2018/05/06 PHP
ext for eclipse插件安装方法
2008/04/27 Javascript
jQuery 获取URL参数的插件
2010/03/04 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
Bootstrap Table表格一直加载(load)不了数据的快速解决方法
2016/09/17 Javascript
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
JavaScript学习笔记之函数记忆
2017/09/06 Javascript
微信小程序表单验证功能完整实例
2017/12/01 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
2018/04/26 jQuery
在vue 中使用 less的教程详解
2018/09/26 Javascript
深入探索VueJS Scoped CSS 实现原理
2019/09/23 Javascript
JavaScript实现动态留言板
2020/03/16 Javascript
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
Python实例一个类背后发生了什么
2016/02/09 Python
在Django中输出matplotlib生成的图片方法
2018/05/24 Python
对django views中 request, response的常用操作详解
2019/07/17 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
Python实现字符串中某个字母的替代功能
2019/10/21 Python
Python While循环语句实例演示及原理解析
2020/01/03 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
Django-simple-captcha验证码包使用方法详解
2020/11/28 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
保加利亚手表、香水、化妆品和珠宝购物网站:Brasty.bg
2020/04/22 全球购物
项目经理岗位职责
2013/11/11 职场文书
数学检讨书1000字
2014/02/24 职场文书
超市促销活动方案
2014/03/05 职场文书
任命书模板
2014/06/04 职场文书
运动员口号
2014/06/09 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书
致创业的您:这类人不适合餐饮创业
2019/08/19 职场文书
MySQL定时备份数据库(全库备份)的实现
2021/09/25 MySQL