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 相关文章推荐
将RTF格式的文件转成HTML并在网页中显示的代码
Oct 09 PHP
PHP 开源AJAX框架14种
Aug 24 PHP
php生成缩略图示例代码分享(使用gd库实现)
Jan 20 PHP
windows7下安装php的php-ssh2扩展教程
Jul 04 PHP
PHP比你想象的好得多
Nov 27 PHP
php中文繁体和简体相互转换的方法
Mar 21 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
Jun 23 PHP
实例讲解php数据访问
May 09 PHP
PHP5.4起内置web服务器使用方法
Aug 09 PHP
thinkPHP实现签到功能的方法
Mar 15 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
Apr 30 PHP
PHP日期和时间函数的使用示例详解
Aug 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
漫威DC即将合作联动,而双方早已经秘密开始
2020/04/09 欧美动漫
PHP 类型转换函数intval
2009/06/20 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
PHP微信支付结果通知与回调策略分析
2019/01/10 PHP
PHP fopen函数用法实例讲解
2019/02/15 PHP
PHP示例演示发送邮件给某个邮箱
2019/04/03 PHP
js中各浏览器中鼠标按键值的差异
2011/04/07 Javascript
实现web打印的各种方法介绍及实现代码
2013/01/09 Javascript
jquery mobile事件多次绑定示例代码
2013/09/13 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
2020/09/01 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
2016/07/08 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
jQuery内容筛选选择器实例代码
2017/02/06 Javascript
JS实现匀加速与匀减速运动的方法示例
2017/09/04 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
JS生成随机打乱数组的方法示例
2017/12/23 Javascript
JavaScript使用localStorage存储数据
2019/09/25 Javascript
详解重置Django migration的常见方式
2019/02/15 Python
Python为何不能用可变对象作为默认参数的值
2019/07/01 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
2020/07/14 Python
Python 内存管理机制全面分析
2021/01/16 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
CAT鞋美国官网:CAT Footwear
2017/11/27 全球购物
2014年计算机专业个人自我评价
2014/01/19 职场文书
大学生秋游活动方案
2014/02/17 职场文书
授权委托书范本
2014/04/03 职场文书
公证书标准格式
2014/04/10 职场文书
冬季安全检查方案
2014/05/23 职场文书
优秀教师自我评价范文
2014/09/27 职场文书
销售代理协议书
2014/09/30 职场文书
2015年体育教师个人工作总结
2015/05/12 职场文书
少年派的奇幻漂流观后感
2015/06/08 职场文书
详解nginx location指令
2022/01/18 Servers
【DOTA2】总决赛血虐~ XTREME GAMING vs MAGMA - OGA DOTA PIT 2022 CN
2022/04/02 DOTA