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 相关文章推荐
PHP 页面编码声明方法详解(header或meta)
Mar 12 PHP
解析php二分法查找数组是否包含某一元素
May 23 PHP
PHP程序员常见的40个陋习,你中了几个?
Nov 20 PHP
laravel 5 实现模板主题功能
Mar 02 PHP
php实现ip白名单黑名单功能
Mar 12 PHP
php实现插入排序
Mar 29 PHP
举例详解PHP脚本的测试方法
Aug 05 PHP
php文件上传后端处理小技巧
May 22 PHP
详解关于php的xdebug配置(编辑器vscode)
Jan 29 PHP
laravel 实现登陆后返回登陆前的页面方法
Oct 03 PHP
laravel 实现设置时区的简单方法
Oct 10 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
Oct 16 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安装问题
2006/10/09 PHP
jQuery 源码分析笔记
2011/05/25 PHP
php中批量替换文件名的实现代码
2011/07/20 PHP
百度站点地图(百度sitemap)生成方法分享
2014/01/09 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
[IE&FireFox兼容]JS对select操作
2007/01/07 Javascript
jQuery 全选效果实现代码
2009/03/23 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
2012/08/17 Javascript
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
用js实现小球的自由移动代码
2013/04/22 Javascript
在javascript中实现函数数组的方法
2013/12/25 Javascript
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
js实现图片放大展示效果
2017/08/30 Javascript
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
vue 中 elment-ui table合并上下两行相同数据单元格
2019/12/26 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
apache部署python程序出现503错误的解决方法
2017/07/24 Python
15行Python代码实现网易云热门歌单实例教程
2019/03/10 Python
使用Python控制摄像头拍照并发邮件
2019/04/23 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
家长会邀请书
2014/01/25 职场文书
教师党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
2014年营销工作总结
2014/11/22 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
早恋主题班会
2015/08/14 职场文书
Python绘制地图神器folium的新人入门指南
2021/05/23 Python
分享几个实用的CSS代码块
2022/06/10 HTML / CSS
使用JS前端技术实现静态图片局部流动效果
2022/08/05 Javascript