php文字水印和php图片水印实现代码(二种加水印方法)


Posted in PHP onDecember 25, 2013

文字水印

文字水印就是在图片上加上文字,主要使用gd库的imagefttext方法,并且需要字体文件。效果图如下:

php文字水印和php图片水印实现代码(二种加水印方法)

实现代码如下:

$dst_path = 'dst.jpg';
//创建图片的实例
$dst = imagecreatefromstring(file_get_contents($dst_path));
//打上文字
$font = './simsun.ttc';//字体
$black = imagecolorallocate($dst, 0x00, 0x00, 0x00);//字体颜色
imagefttext($dst, 13, 0, 20, 20, $black, $font, '快乐编程');
//输出图片
list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);
switch ($dst_type) {
    case 1://GIF
        header('Content-Type: image/gif');
        imagegif($dst);
        break;
    case 2://JPG
        header('Content-Type: image/jpeg');
        imagejpeg($dst);
        break;
    case 3://PNG
        header('Content-Type: image/png');
        imagepng($dst);
        break;
    default:
        break;
}
imagedestroy($dst);

图片水印

图片水印就是将一张图片加在另外一张图片上,主要使用gd库的imagecopy和imagecopymerge。效果图如下:

php文字水印和php图片水印实现代码(二种加水印方法)

实现代码如下:

$dst_path = 'dst.jpg';
$src_path = 'src.jpg';
//创建图片的实例
$dst = imagecreatefromstring(file_get_contents($dst_path));
$src = imagecreatefromstring(file_get_contents($src_path));
//获取水印图片的宽高
list($src_w, $src_h) = getimagesize($src_path);
//将水印图片复制到目标图片上,最后个参数50是设置透明度,这里实现半透明效果
imagecopymerge($dst, $src, 10, 10, 0, 0, $src_w, $src_h, 50);
//如果水印图片本身带透明色,则使用imagecopy方法
//imagecopy($dst, $src, 10, 10, 0, 0, $src_w, $src_h);
//输出图片
list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);
switch ($dst_type) {
    case 1://GIF
        header('Content-Type: image/gif');
        imagegif($dst);
        break;
    case 2://JPG
        header('Content-Type: image/jpeg');
        imagejpeg($dst);
        break;
    case 3://PNG
        header('Content-Type: image/png');
        imagepng($dst);
        break;
    default:
        break;
}
imagedestroy($dst);
imagedestroy($src);
PHP 相关文章推荐
Mysql的常用命令
Oct 09 PHP
PHP常用函数小技巧
Sep 11 PHP
php 面试碰到过的问题 在此做下记录
Jun 09 PHP
PHP内核介绍及扩展开发指南―基础知识
Sep 11 PHP
php方法调用模式与函数调用模式简例
Sep 20 PHP
php $_SERVER windows系统与linux系统下的区别说明
Feb 14 PHP
PHP中的traits实现代码复用使用实例
May 13 PHP
php验证手机号码
Nov 11 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
Nov 15 PHP
总结对比php中的多种序列化
Aug 28 PHP
php微信公众号开发之欢迎老朋友
Oct 20 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
Oct 18 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
Dec 25 #PHP
php生成缩略图填充白边(等比缩略图方案)
Dec 25 #PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
Dec 25 #PHP
php使用strtotime和date函数判断日期是否有效代码分享
Dec 25 #PHP
php制作unicode解码工具(unicode编码转换器)代码分享
Dec 24 #PHP
linux实现php定时执行cron任务详解
Dec 24 #PHP
生成随机字符串和验证码的类的PHP实例
Dec 24 #PHP
You might like
php miniBB中文乱码问题解决方法
2008/11/25 PHP
php基于str_pad实现卡号不足位数自动补0的方法
2014/11/12 PHP
推荐10个提供免费PHP脚本下载的网站
2014/12/31 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
疯掉了,尽然有js写的操作系统
2007/04/23 Javascript
Javascript & DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
2007/06/02 Javascript
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
jQuery学习笔记之jQuery.fn.init()的参数分析
2014/06/09 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
2016/05/05 Javascript
JavaScript事件详细讲解
2016/06/27 Javascript
js判断空对象的实例(超简单)
2016/07/26 Javascript
遍历json获得数据的几种方法小结
2017/01/21 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
2018/08/17 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
Vue初始化中的选项合并之initInternalComponent详解
2020/06/11 Javascript
解决vuecli3中img src 的引入问题
2020/08/04 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
Windows下为Python安装Matplotlib模块
2015/11/06 Python
详细介绍Python的鸭子类型
2016/09/12 Python
Python socket 套接字实现通信详解
2019/08/27 Python
python是怎么被发明的
2020/06/15 Python
Node.js 和 Python之间该选择哪个?
2020/08/05 Python
使用django自带的user做外键的方法
2020/11/30 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
加多宝凉茶广告词
2014/03/18 职场文书
探亲假请假条
2014/04/11 职场文书
车队司机个人自我鉴定
2014/04/17 职场文书
创建文明城市倡议书
2015/04/28 职场文书
个人原因辞职信模板
2015/05/13 职场文书
心灵捕手观后感
2015/06/02 职场文书