php图片添加文字水印实现代码


Posted in PHP onMarch 15, 2016

php类库给现有的图片加文字水印,代码不是很完善,欢迎大家多多指教!代码如下:

<?php
/*PHP图片加文字水印类库
QQ:3697578482 伤心的歌
该类库暂时只支持文字水印,位置为右下角,颜色随机
调用方法:
1、在需要加水印的文件顶部引入类库:
include_once 'imageClass.php';
2、声明新类:
$tpl=new image_fu;
3、给图片水印提供参数:
$tpl->img(图片路径,水印文字,字体路径,字体大小,字体角度);
比如:$tpl->img('abc.jpg','这是水印文字','ziti.ttf',30,0)
*/
class image_fu{
private $image;
private $img_info;
private $img_width;
private $img_height;
private $img_im;
private $img_text;
private $img_ttf='';
private $img_new;
private $img_text_size;
private $img_jd;
function img($img='',$txt='',$ttf='',$size=12,$jiaodu=0){
if(isset($img)&&file_exists($img)){//检测图片是否存在
$this->image =$img;
$this->img_text=$txt;
$this->img_text_size=$size;
$this->img_jd=$jiaodu;
if(file_exists($ttf)){
$this->img_ttf=$ttf;
}else{
exit('字体文件:'.$ttf.'不存在!');
}
$this->imgyesno();
}else{
exit('图片文件:'.$img.'不存在');
}
}
private function imgyesno(){
$this->img_info =getimagesize($this->image);
$this->img_width =$this->img_info[0];//图片宽
$this->img_height=$this->img_info[1];//图片高
//检测图片类型
switch($this->img_info[2]){
case 1:$this->img_im = imagecreatefromgif($this->image);break;
case 2:$this->img_im = imagecreatefromjpeg($this->image);break;
case 3:$this->img_im = imagecreatefrompng($this->image);break;
default:exit('图片格式不支持水印');
}
$this->img_text();
}
private function img_text(){
imagealphablending($this->img_im,true);
//设定颜色
$color=imagecolorallocate($this->img_im,rand(0,255),rand(0,255),rand(0,255));
$txt_height=$this->img_text_size;
$txt_jiaodu=$this->img_jd;
$ttf_im=imagettfbbox($txt_height,$txt_jiaodu,$this->img_ttf,$this->img_text);
$w = $ttf_im[2] - $ttf_im[6];
$h = $ttf_im[3] - $ttf_im[7];
//$w = $ttf_im[7];
//$h = $ttf_im[8];
unset($ttf_im);
$txt_y =$this->img_height-$h;
$txt_x =$this->img_width-$w;
//$txt_y =0;
//$txt_x =0;
$this->img_new=@imagettftext($this->img_im,$txt_height,$txt_jiaodu,$txt_x,$txt_y,$color,$this->img_ttf,$this->img_text);
@unlink($this->image);//删除图片
switch($this->img_info[2]) {//取得背景图片的格式
case 1:imagegif($this->img_im,$this->image);break;
case 2:imagejpeg($this->img_im,$this->image);break;
case 3:imagepng($this->img_im,$this->image);break;
default: exit('水印图片失败');
}
}
//显示图片
function img_show(){echo '<img src="'.$this->image.'" border="0" alt="'.$this->img_text.'" />';}
//释放内存
private function img_nothing(){
unset($this->img_info);
imagedestroy($this->img_im);
}
}
?>

以上就是本文的全部内容,希望对大家的学习有所帮助。

PHP 相关文章推荐
人大复印资料处理程序_输入篇
Oct 09 PHP
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
Jan 15 PHP
php面向对象全攻略 (二) 实例化对象 使用对象成员
Sep 30 PHP
解析php安全性问题中的:Null 字符问题
Jun 21 PHP
一个经典实用的PHP图像处理类分享
Nov 18 PHP
PHP实现清除wordpress里恶意代码
Oct 21 PHP
关于php中一些字符串总结
May 05 PHP
PHP链表操作简单示例
Oct 15 PHP
如何修改yii2.0自带的user表为其它的表
Aug 01 PHP
浅谈PHP中new self()和new static()的区别
Aug 11 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 04 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
Sep 13 PHP
PHP闭包函数传参及使用外部变量的方法
Mar 15 #PHP
Yii rules常用规则示例
Mar 15 #PHP
基于laravel制作APP接口(API)
Mar 15 #PHP
使用Composer安装Yii框架的方法
Mar 15 #PHP
Yii使用migrate命令执行sql语句的方法
Mar 15 #PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
Mar 15 #PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
Mar 14 #PHP
You might like
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
2011/09/09 PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
2012/11/07 PHP
实现在同一方法中获取当前方法中新赋值的session值解决方法
2014/06/26 PHP
PHP生成二维码的两个方法和实例
2014/07/01 PHP
Thinkphp3.2.3分页使用实例解析
2016/07/28 PHP
PHP读取文件的常见几种方法
2016/11/03 PHP
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
2011/07/08 Javascript
js判断字符是否是汉字的两种方法小结
2014/01/03 Javascript
JS 实现列表与多选框选择附预览动画
2014/10/29 Javascript
JavaScript简单表格编辑功能实现方法
2015/04/16 Javascript
js省市联动效果完整实例代码
2015/12/09 Javascript
JS Attribute属性操作详解
2016/05/19 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
2016/05/19 Javascript
微信小程序 教程之列表渲染
2016/10/18 Javascript
基于jQuery实现数字滚动效果
2017/01/16 Javascript
vue2.0 常用的 UI 库实例讲解
2017/12/12 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
React注册倒计时功能的实现
2018/09/06 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
使用python分析git log日志示例
2014/02/27 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
python网络应用开发知识点浅析
2019/05/28 Python
实例讲解Python 迭代器与生成器
2020/07/08 Python
html Table 表头固定的实现
2019/01/22 HTML / CSS
英国在线女鞋目的地:SIMMI
2018/12/27 全球购物
应届生如何写自荐信
2014/01/05 职场文书
校运会广播稿100字
2014/01/27 职场文书
《会走路的树》教后反思
2014/04/19 职场文书
员工工作表现评语
2014/04/26 职场文书
2015新年寄语大全
2014/12/08 职场文书
体育教师个人工作总结
2015/02/09 职场文书
2015年乡镇发展党员工作总结
2015/03/31 职场文书
会计主管岗位职责
2015/04/02 职场文书
2015年度个人教学工作总结
2015/05/20 职场文书
详细谈谈MYSQL中的COLLATE是什么
2021/06/11 MySQL