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
将OICQ数据转成MYSQL数据
Oct 09 PHP
使用php+apc实现上传进度条且在IE7下不显示的问题解决方法
Apr 25 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
Nov 04 PHP
CodeIgniter使用smtp服务发送html邮件的方法
Jun 10 PHP
PHP使用flock实现文件加锁的方法
Jul 01 PHP
怎样搭建PHP开发环境
Jul 28 PHP
PHP实现递归无限级分类
Oct 22 PHP
深入解析PHP中SESSION反序列化机制
Mar 01 PHP
php自定义函数实现统计中文字符串长度的方法小结
Apr 15 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
Apr 09 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
Aug 12 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
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
PHP __autoload函数(自动载入类文件)的使用方法
2012/02/04 PHP
php实现的RSS生成类实例
2015/04/23 PHP
php 使用curl模拟登录人人(校内)网的简单实例
2016/06/06 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
Javascript模块化编程(一)AMD规范(规范使用模块)
2013/01/17 Javascript
简单的代码实现jquery定时器
2013/11/17 Javascript
jquery幻灯片插件bxslider样式改进实例
2014/10/15 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
2016/03/01 Javascript
jquery分页插件jquery.pagination.js使用方法解析
2016/04/01 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
JavaScript导航脚本判断当前导航
2016/07/12 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
2016/08/11 Javascript
JavaScript toUpperCase()方法使用详解
2016/08/26 Javascript
JavaScript 总结几个提高性能知识点(推荐)
2017/02/20 Javascript
Vue2.0如何发布项目实战
2017/07/27 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
2017/08/08 jQuery
用Python进行简单图像识别(验证码)
2018/01/19 Python
python中使用zip函数出现错误的原因
2018/09/28 Python
Linux上使用Python统计每天的键盘输入次数
2019/04/17 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
Python寻找路径和查找文件路径的示例
2019/07/10 Python
Python实现名片管理系统
2020/02/14 Python
PyQt5实现登录页面
2020/05/30 Python
解析Tensorflow之MNIST的使用
2020/06/30 Python
Java面试中常遇到的问题,也是需要注意的几点
2013/08/30 面试题
什么是测试驱动开发(TDD)
2012/02/15 面试题
精彩广告词大全
2014/03/19 职场文书
篮球兴趣小组活动总结
2014/07/07 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
解决numpy数组互换两行及赋值的问题
2021/04/17 Python
使用CSS实现黑白格背景效果
2022/06/01 HTML / CSS
MySQL详细讲解变量variables的用法
2022/06/21 MySQL