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 相关文章推荐
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
Jan 15 PHP
php xml文件操作代码(一)
Mar 20 PHP
php 代码优化的42条建议 推荐
Sep 25 PHP
关于PHP5 Session生命周期介绍
Mar 02 PHP
php 无限级分类,超级简单的无限级分类,支持输出树状图
Jun 29 PHP
PHP访问Google Search API的方法
Mar 05 PHP
PHP基于工厂模式实现的计算器实例
Jul 16 PHP
简单介绍win7下搭建apache+php+mysql开发环境
Aug 06 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
Dec 17 PHP
PHP打印输出函数汇总
Aug 28 PHP
使用正则去除php代码中的注释方法
Nov 03 PHP
利用Laravel事件系统如何实现登录日志的记录详解
May 20 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乱码问题
2012/03/25 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
基于php冒泡排序算法的深入理解
2013/06/09 PHP
php将print_r处理后的数据还原为原始数组的解决方法
2016/11/02 PHP
PHP实现一个简单url路由功能实例
2016/11/05 PHP
让Laravel API永远返回JSON格式响应的方法示例
2018/09/05 PHP
laravel5.0在linux下解决.htaccess无效和去除index.php的问题
2019/10/16 PHP
用jQuery技术实现Tab页界面之二
2009/09/21 Javascript
javascript 伪数组实现方法
2010/10/11 Javascript
js锁屏解屏通过对$.ajax进行封装实现
2014/07/31 Javascript
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
jQuery插件实现可输入和自动匹配的下拉框
2016/10/24 Javascript
详谈Angular路由与Nodejs路由的区别
2017/03/05 NodeJs
json2.js 入门教程之使用方法与实例分析
2017/09/14 Javascript
浅谈Vue数据绑定的原理
2018/01/08 Javascript
微信小程序自定义底部弹出框
2020/11/16 Javascript
JS 数组基本用法入门示例解析
2020/01/16 Javascript
十分钟教你上手ES2020新特性
2020/02/12 Javascript
Python正则表达式指南 推荐
2018/10/09 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
Python+OpenCV实现旋转文本校正方式
2020/01/09 Python
python3 实现口罩抽签的功能
2020/03/11 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
中学家长会邀请函
2014/02/03 职场文书
电力公司个人求职信范文
2014/02/04 职场文书
做人民满意的公务员活动方案
2014/08/25 职场文书
毕业生见习报告总结
2014/11/08 职场文书
先进个人推荐材料
2014/12/29 职场文书
2015教师年度考核评语
2015/03/25 职场文书
行政经理岗位职责
2015/04/15 职场文书
团结主题班会
2015/08/13 职场文书
简历中的自我评价怎么写呢?
2019/04/30 职场文书
婚前协议书怎么写,才具有法律效力呢 ?
2019/06/28 职场文书