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 相关文章推荐
PHP5.3.1 不再支持ISAPI
Jan 08 PHP
PHP基础学习小结
Apr 17 PHP
php学习笔记 数组遍历实现代码
Jun 09 PHP
一个简单的网页密码登陆php代码
Jul 17 PHP
通过dbi使用perl连接mysql数据库的方法
Apr 16 PHP
destoon实现公司新闻详细页添加评论功能的方法
Jul 15 PHP
php实现检查文章是否被百度收录
Jan 27 PHP
php简单smarty入门程序实例
Jun 11 PHP
详解Window7 下开发php扩展
Dec 31 PHP
php实现base64图片上传方式实例代码
Feb 22 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
May 23 PHP
goto语法在PHP中的使用教程
Sep 17 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更新mysql后获取影响的行数发生异常解决方法
2013/03/28 PHP
PHP中抽象类和抽象方法概念与用法分析
2016/05/24 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
2018/10/23 PHP
cookie 最近浏览记录(中文escape转码)具体实现
2013/06/08 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
AngularJS教程之环境设置
2016/08/16 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
python爬虫之百度API调用方法
2017/06/11 Python
Python md5与sha1加密算法用法分析
2017/07/14 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
2017/09/05 Python
利用python操作SQLite数据库及文件操作详解
2017/09/22 Python
对python中的logger模块全面讲解
2018/04/28 Python
python如何求解两数的最大公约数
2018/09/27 Python
python IDLE 背景以及字体大小的修改方法
2019/07/12 Python
对Python生成器、装饰器、递归的使用详解
2019/07/19 Python
Python如何实现感知器的逻辑电路
2020/12/25 Python
css3中检验表单的required,focus,valid和invalid样式
2014/02/21 HTML / CSS
CSS3属性 line-clamp控制文本行数的使用
2020/03/19 HTML / CSS
YSL圣罗兰美妆官方旗舰店:购买YSL口红
2018/04/16 全球购物
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
数学专业推荐信范文
2013/11/21 职场文书
基层党组织整改方案
2014/10/25 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书
员工工作表扬信
2015/05/05 职场文书
离开雷锋的日子观后感
2015/06/09 职场文书
宿舍管理制度范本
2015/08/07 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书
2016年国庆节假期旅游工作总结
2016/04/01 职场文书
详解python字符串驻留技术
2021/05/21 Python
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python
【js设计模式】SOLID五大设计原则
2022/03/24 Javascript