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简单封装了一些常用JS操作
Feb 25 PHP
php截取utf-8中文字符串乱码的解决方法
Mar 29 PHP
PHP操作数组相关函数
Feb 03 PHP
PHP动态创建Web站点的方法
Aug 14 PHP
PHP对MongoDB[NoSQL]数据库的操作
Mar 01 PHP
一致性哈希算法以及其PHP实现详细解析
Aug 24 PHP
PHP实现的构造sql语句类实例
Feb 03 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
Sep 23 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
phpstorm 配置xdebug的示例代码
Mar 31 PHP
laravel Validator ajax返回错误信息的方法
Sep 29 PHP
php测试kafka项目示例
Feb 06 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原创论坛
2006/10/09 PHP
PHP数组交集的优化代码分析
2011/03/06 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
use jscript Create a SQL Server database
2007/06/16 Javascript
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
jQuery自定义数值抽奖活动代码
2016/06/11 Javascript
下一代Bootstrap的5个特点 超酷炫!
2016/06/17 Javascript
JS控制静态页面传递参数并获取参数应用
2016/08/10 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
Bootstrap缩略图的创建方法
2017/03/22 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
2017/07/31 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
python在指定目录下查找gif文件的方法
2015/05/04 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
python matlibplot绘制3D图形
2018/07/02 Python
pytorch之inception_v3的实现案例
2020/01/06 Python
Python打印特殊符号及对应编码解析
2020/05/07 Python
详解python变量与数据类型
2020/08/25 Python
css3实现背景图片拉伸效果像桌面壁纸一样
2013/08/19 HTML / CSS
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
美国电子元器件分销商:Newark element14
2018/01/13 全球购物
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
党员干部公开承诺书
2014/03/26 职场文书
购房意向书
2014/04/01 职场文书
环保倡议书格式范文
2014/05/14 职场文书
繁星春水读书笔记
2015/06/30 职场文书
认识实习感想
2015/08/10 职场文书
聘任书范文大全
2015/09/21 职场文书
《鸟的天堂》教学反思
2016/02/19 职场文书
《大禹治水》教学反思
2016/02/22 职场文书
PHP基本语法
2021/03/31 PHP
Vue的过滤器你真了解吗
2022/02/24 Vue.js