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世纪万年历
Dec 06 PHP
PHP中的CMS的涵义
Mar 11 PHP
PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
Apr 26 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
Jun 20 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
May 15 PHP
php实例分享之二维数组排序
May 15 PHP
CodeIgniter框架过滤HTML危险代码
Jun 12 PHP
php操作csv文件代码实例汇总
Sep 22 PHP
php将图片保存为不同尺寸图片的图片类实例
Mar 30 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
Jan 07 PHP
Yii2增加验证码步骤详解
Apr 25 PHP
WordPress过滤垃圾评论的几种主要方法小结
Jul 11 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
JpGraph php柱状图使用介绍
2011/08/23 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
php日期操作技巧小结
2016/06/25 PHP
javascript写的一个链表实现代码
2009/10/25 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
分享Javascript中最常用的55个经典小技巧
2013/11/29 Javascript
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
借助JavaScript脚本判断浏览器Flash Player信息的方法
2014/07/09 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
JQuery中$.each 和$(selector).each()的区别详解
2015/03/13 Javascript
javascript常用经典算法实例详解
2015/11/25 Javascript
jQuery Ajax 加载数据时异步显示加载动画
2016/08/01 Javascript
jQuery中ScrollTo用法示例
2016/09/04 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
2016/11/09 Javascript
jQuery中$.grep() 过滤函数 数组过滤
2016/11/22 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
angular写一个列表的选择全选交互组件的示例
2018/01/22 Javascript
详解微信小程序开发聊天室—实时聊天,支持图片预览
2019/05/20 Javascript
jQuery实现简单评论区功能
2020/10/26 jQuery
Python的for和break循环结构中使用else语句的技巧
2016/05/24 Python
详解Python中的Descriptor描述符类
2016/06/14 Python
Python基于回溯法子集树模板解决取物搭配问题实例
2017/09/02 Python
解决Pycharm运行时找不到文件的问题
2018/10/29 Python
pycharm 实现显示project 选项卡的方法
2019/01/17 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
python通过安装itchat包实现微信自动回复收到的春节祝福
2020/01/19 Python
Python如何实现后端自定义认证并实现多条件登陆
2020/06/22 Python
python不同版本的_new_不同点总结
2020/12/09 Python
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
2016年精神文明建设先进个人事迹材料
2016/02/29 职场文书
mysql中int(3)和int(10)的数值范围是否相同
2021/10/16 MySQL