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 相关文章推荐
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
Jul 21 PHP
实用函数3
Nov 08 PHP
php MsSql server时遇到的中文编码问题
Jun 11 PHP
PHP中通过语义URL防止网站被攻击的方法分享
Sep 08 PHP
PHP jQuery表单,带验证具体实现方法
Feb 15 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
检测codeigniter脚本消耗内存情况的方法
Mar 21 PHP
php实现paypal 授权登录
May 28 PHP
用php代码限制国内IP访问我们网站
Sep 26 PHP
ThinkPHP表单数据智能写入create方法实例分析
Sep 27 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
Sep 04 PHP
php中输出json对象的值(实现方法)
Mar 07 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
第八节 访问方式 [8]
2006/10/09 PHP
防止用户利用PHP代码DOS造成用光网络带宽
2011/03/01 PHP
php环境无法上传文件的解决方法
2014/04/30 PHP
PHP程序中使用adodb连接不同数据库的代码实例
2015/12/19 PHP
最新最全PHP生成制作验证码代码详解(推荐)
2016/06/12 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
2019/09/12 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
再谈javascript面向对象编程
2012/03/18 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
利用JS延迟加载百度分享代码,提高网页速度
2013/07/01 Javascript
jquery批量设置属性readonly和disabled的方法
2014/01/24 Javascript
Javascript原型链的原理详解
2016/01/05 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
2016/06/14 Javascript
javascript中的 object 和 function小结
2016/08/14 Javascript
JS判断Android、iOS或浏览器的多种方法(四种方法)
2017/06/29 Javascript
使用vuex存储用户信息到localStorage的实例
2019/11/11 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
详解flask入门模板引擎
2018/07/18 Python
解决Python2.7中IDLE启动没有反应的问题
2018/11/30 Python
用python中的matplotlib绘制方程图像代码
2019/11/21 Python
python自动化unittest yaml使用过程解析
2020/02/03 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
django使用channels实现通信的示例
2020/10/19 Python
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
饿了么订餐官网:外卖、网上订餐
2019/06/28 全球购物
Theflamel意大利:女士奢华服装、鞋子和配件
2020/01/11 全球购物
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
大专生毕业的自我评价
2014/02/06 职场文书
法律专业学生的自我评价
2014/02/07 职场文书
骨干教师申报材料
2014/12/17 职场文书
硕士学位论文评语
2014/12/31 职场文书
python 中的@运算符使用
2021/05/26 Python
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
2022/08/05 Servers