ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法,
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法,
本文实例讲述了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添加文字水印类 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 "";
}
//类结束
}
?>
调用页面:index.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;
?>
查看结果
希望本文所述对大家的ThinkPHP框架程序设计有所帮助。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

公司安全软件导致部分应用无法正常运行的排查与解决方法许多公司为了保障内部网络安全,会部署安全软件。...

CentOS系统下MinIO安装的权限问题及解决方案在CentOS环境部署MinIO时,权限问题是常见难题。本文将介绍几种常见的权限问题及其解决方法,助您顺利完成MinIO安装与配置。修改默认账户及密码:您可以通过设置环境变量MINIO_ROOT_USER和MINIO_ROOT_PASSWORD来修改默认的用户名和密码。修改后,重启MinIO服务即可生效。配置存储桶访问权限:将存储桶设置为公开(public)会导致目录可被遍历,存在安全风险。建议自定义存储桶访问策略。您可以通过MinIO

phpMyAdmin 可用于在 PHP 项目中创建数据库。具体步骤如下:登录 phpMyAdmin,点击“新建”按钮。输入要创建的数据库的名称,注意符合 MySQL 命名规则。设置字符集,如 UTF-8,以避免乱码问题。

Redis内存飙升的原因包括:数据量过大、数据结构选择不当、配置问题(如maxmemory设置过小)、内存泄漏。解决方法有:删除过期数据、使用压缩技术、选择合适的结构、调整配置参数、检查代码是否存在内存泄漏、定期监控内存使用情况。

可以通过以下步骤解决 Navicat 无法连接数据库的问题:检查服务器连接,确保服务器运行、地址和端口正确,防火墙允许连接。验证登录信息,确认用户名、密码和权限正确。检查网络连接,排除网络问题,例如路由器或防火墙故障。禁用 SSL 连接,某些服务器可能不支持。检查数据库版本,确保 Navicat 版本与目标数据库兼容。调整连接超时,对于远程或较慢的连接,增加连接超时时间。其他解决方法,如果上述步骤无效,可以尝试重新启动软件,使用不同的连接驱动程序,或咨询数据库管理员或 Navicat 官方支持。

CentOS下Hadoop分布式文件系统(HDFS)配置常见问题及解决方案在CentOS系统上搭建HadoopHDFS集群时,一些常见的错误配置可能导致性能下降、数据丢失甚至集群无法启动。本文总结了这些常见问题及其解决方法,帮助您避免这些陷阱,确保HDFS集群的稳定性和高效运行。机架感知配置错误:问题:未正确配置机架感知信息,导致数据块副本分布不均,增加网络负载。解决方案:仔细检查hdfs-site.xml文件中的机架感知配置,并使用hdfsdfsadmin-printTopo

Redis内存碎片是指分配的内存中存在无法再分配的小块空闲区域。应对策略包括:重启Redis:彻底清空内存,但会中断服务。优化数据结构:使用更适合Redis的结构,减少内存分配和释放次数。调整配置参数:使用策略淘汰最近最少使用的键值对。使用持久化机制:定期备份数据,重启Redis清理碎片。监控内存使用情况:及时发现问题并采取措施。

VS Code可以在Windows 8上运行,但体验可能不佳。首先确保系统已更新到最新补丁,然后下载与系统架构匹配的VS Code安装包,按照提示安装。安装后,注意某些扩展程序可能与Windows 8不兼容,需要寻找替代扩展或在虚拟机中使用更新的Windows系统。安装必要的扩展,检查是否正常工作。尽管VS Code在Windows 8上可行,但建议升级到更新的Windows系统以获得更好的开发体验和安全保障。
