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将gd生成的图片缓存到memcache的小例子
Jun 05 PHP
php生成随机密码自定义函数代码(简单快速)
May 10 PHP
ThinkPHP中的关联模型注意点
Jun 16 PHP
Mac OS下配置PHP+MySql环境
Feb 25 PHP
php比较两个字符串长度的方法
Jul 13 PHP
windows7配置Nginx+php+mysql的详细教程
Sep 04 PHP
老生常谈PHP面向对象之注册表模式
May 26 PHP
php通过pecl方式安装扩展的实例讲解
Feb 02 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
May 28 PHP
PHP下载大文件失败并限制下载速度的实例代码
May 10 PHP
Laravel手动返回错误码示例
Oct 22 PHP
php中try catch捕获异常实例详解
Aug 06 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 构造函数construct的前下划线是双的_
2009/12/08 PHP
PHP中使用mktime获取时间戳的一个黑色幽默分析
2012/05/31 PHP
php curl 伪造IP来源的实例代码
2012/11/01 PHP
PHPUnit安装及使用示例
2014/10/29 PHP
php缓冲输出实例分析
2015/01/05 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
2018/04/21 PHP
laravel 如何实现引入自己的函数或类库
2019/10/15 PHP
jQuery Ajax文件上传(php)
2009/06/16 Javascript
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
js调用css属性写法
2013/09/21 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
微信小程序多列选择器range-key使用详解
2020/03/30 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
2017/08/29 jQuery
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
详解【python】str与json类型转换
2019/04/29 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
Python编程快速上手——PDF文件操作案例分析
2020/02/28 Python
CSS3.0实现霓虹灯按钮动画特效的示例代码
2021/01/12 HTML / CSS
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
Html5大文件断点续传实现方法
2015/12/05 HTML / CSS
解释一下Windows的消息机制
2014/01/30 面试题
护理专业的自荐信
2013/10/22 职场文书
股份合作协议书范本
2014/04/14 职场文书
小学生综合素质评语
2014/04/23 职场文书
心理健康日活动总结
2014/05/08 职场文书
横幅标语大全
2014/06/17 职场文书
2014年库房工作总结
2014/11/26 职场文书
给领导的感谢信范文
2015/01/23 职场文书
校长一岗双责责任书
2015/05/09 职场文书
孔繁森观后感
2015/06/10 职场文书
在人间读书笔记
2015/06/30 职场文书