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项目的方法
Oct 09 PHP
新手学习PHP的一些基础知识分享
Jul 27 PHP
初学PHP的朋友 经常问的一些问题。不断更新
Aug 11 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
Oct 29 PHP
用PHP实现小写金额转换大写金额的代码(精确到分)
Jan 10 PHP
PHP测试程序运行时间的类
Feb 05 PHP
PHP内置过滤器FILTER使用实例
Jun 25 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
Aug 01 PHP
实例分析PHP中PHPMailer发邮件
Dec 13 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
May 05 PHP
在PHP中实现使用Guzzle执行POST和GET请求
Oct 15 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
Oct 22 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
为什么那些咖啡爱好者大多看不上连锁咖啡店?
2021/03/06 咖啡文化
PHP内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
php 删除一维数组中某一个值元素的操作方法
2018/02/01 PHP
PHP钩子实现方法解析
2019/05/21 PHP
goto语法在PHP中的使用教程
2020/09/17 PHP
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
canvas压缩图片转换成base64格式输出文件流
2017/03/09 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
2017/05/07 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
2017/12/16 Javascript
在ES5与ES6环境下处理函数默认参数的实现方法
2018/05/13 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
js作用域和作用域链及预解析
2019/04/11 Javascript
M2实现Nodejs项目自动部署的方法步骤
2019/05/05 NodeJs
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
js实现九宫格抽奖
2020/03/19 Javascript
微信小程序实现聊天室
2020/08/21 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
原生JS实现音乐播放器的示例代码
2021/02/25 Javascript
Python 元类使用说明
2009/12/18 Python
python生成器的使用方法
2013/11/21 Python
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
2018/04/17 Python
python将回车作为输入内容的实例
2018/06/23 Python
python实现自动解数独小程序
2019/01/21 Python
python中hasattr()、getattr()、setattr()函数的使用
2019/08/16 Python
Pycharm小白级简单使用教程
2020/01/08 Python
CSS3实现超慢速移动动画效果非常流畅无卡顿
2014/06/15 HTML / CSS
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
HSRP的含义以及如何工作
2014/09/10 面试题
销售人员中英文自荐信
2013/09/22 职场文书
校园安全演讲稿
2014/05/09 职场文书
2014年自愿离婚协议书范本
2014/09/25 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
读《方与圆》有感:交友方圆有度
2020/01/14 职场文书
MySQL如何使备份得数据保持一致
2022/05/02 MySQL