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 相关文章推荐
截获网站title标签之家内容的例子
Oct 09 PHP
PHP 的 __FILE__ 常量
Jan 15 PHP
ecshop 订单确认中显示省市地址信息的方法
Mar 15 PHP
php加密解密函数authcode的用法详细解析
Oct 28 PHP
php数组中包含中文的排序方法
Jun 03 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
Dec 17 PHP
php使用google地图应用实例
Dec 31 PHP
phpcms手机内容页面添加上一篇和下一篇
Jun 05 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
Jan 20 PHP
PHP Laravel 上传图片、文件等类封装
Aug 16 PHP
php实现的mongoDB单例模式操作类
Jan 20 PHP
PDO::prepare讲解
Jan 29 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
PHP4实际应用经验篇(7)
2006/10/09 PHP
php 验证码制作(网树注释思想)
2009/07/20 PHP
PHP学习之字符串比较和查找
2011/04/17 PHP
php+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
php输出金字塔的2种实现方法
2014/12/16 PHP
php按单词截取字符串的方法
2015/04/07 PHP
php json转换相关知识(小结)
2018/12/21 PHP
初探jquery——表单应用范例
2007/02/20 Javascript
js href的用法
2010/05/13 Javascript
javascript客户端解决方案 缓存提供程序
2010/07/14 Javascript
javascript开发中因空格引发的错误
2010/11/08 Javascript
基于JQuery 选择器使用说明介绍
2013/04/18 Javascript
JavaScript事件代理和委托详解
2016/04/08 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
2016/04/17 Javascript
js获取指定字符前/后的字符串简单实例
2016/10/27 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
express默认日志组件morgan的方法
2018/04/05 Javascript
JS滚轮控制图片缩放大小和拖动的实例代码
2018/11/20 Javascript
jQuery each和js forEach用法比较
2019/02/27 jQuery
微信小程序npm引入vant-weapp的踩坑记录
2019/08/01 Javascript
axios如何取消重复无用的请求详解
2019/12/15 Javascript
Vue3+elementui plus创建项目的方法
2020/12/01 Vue.js
Python 过滤字符串的技巧,map与itertools.imap
2008/09/06 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
Python @property使用方法解析
2019/09/17 Python
如何用Anaconda搭建虚拟环境并创建Django项目
2020/08/02 Python
意大利比基尼品牌:MISS BIKINI
2019/11/02 全球购物
党支部三会一课计划
2014/09/24 职场文书
教师求职简历自我评价
2015/03/10 职场文书
2015年推广普通话演讲稿
2015/03/20 职场文书
2015年高三年级组工作总结
2015/07/21 职场文书
“学党章、守党纪、讲党规”学习心得体会
2016/01/14 职场文书
HTML5简单实现添加背景音乐的几种方法
2021/05/12 HTML / CSS
Windows10安装Apache2.4的方法步骤
2022/06/25 Servers