PHP图片处理之使用imagecopy函数添加图片水印实例


Posted in PHP onNovember 19, 2014

为图片添加水印也是图片处理中常见的功能。因为只要在页面中见到的图片都可以很轻松地拿到,你辛辛苦苦编辑的图片不想被别人不费吹灰之力拿走就用,所以为图片添加水印以确定版权,防止图片被盗用。制作水印可以使用文字(公司名称加网址),也可以使用图片(公司LOGO),图片水印效果更好一些,因为可以通过一些做图片软件进行美化。使用文字做水印,只需要在图片上画一些文字即可。如果制作图片水印,就需要先了解一下GD库中的imagecopy()函数,能复制图片的一部分。该函数的原型如下所示:

bool imagecopy(resource dst_im,resource src_im,int dst_x,int dst_y,int src_x,int src_y,int src_w,int src_h)

该函数的作用是将src_im图像中坐标从src_x,src_y开始,宽度为src_w,高度为src_h的一部分复制到dst_im图像中坐标为dst_x和dst_y的位置上。以JPEG格式的图片为例,编写一个为图片添加水印的函数watermark(),代码如下所示:

<?php

//为背景图片添加图片水印(位置随机),背景图片格式为jpeg,水印图片格式为gif

function watermark($filename,$water){

//获取背景图片的宽度和高度

list($b_w,$b_h) = getimagesize($filename);

//获取水印图片的宽度和高度

list($w_w,$w_h) = getimagesize($water);

//在背景图片中放水印图片的位置随机起始位置

$posX = rand(0, ($b_w-$w_w));

$posY = rand(0, ($b_h-$w_h));

//创建背景图片的资源

$back = imagecreatefromjpeg($filename);

//创建水印图片的资源

$water = imagecreatefromgif($water);

//使用imagecopy()函数将水印图片复制到背景图片指定的位置中

imagecopy($back, $water, $posX, $posY, 0, 0, $w_w, $w_h);

//保存带有水印图片的背景图片

imagejpeg($back,$filename);

imagedestroy($back);

imagedestroy($water);

}

watermark("brophp.jpg", "logo.gif");

?>
PHP 相关文章推荐
杏林同学录(四)
Oct 09 PHP
PHP 导出数据到淘宝助手CSV的方法分享
Feb 27 PHP
php新建文件自动编号的思路与实现
Jun 27 PHP
PHP 万年历实现代码
Oct 18 PHP
探讨:如何编写PHP扩展
Jun 13 PHP
解析yahoo邮件用phpmailer发送的实例
Jun 24 PHP
为PHP5.4开启Zend OPCode缓存
Dec 26 PHP
PHP stream_context_create()函数的使用示例
May 12 PHP
几行代码轻松实现PHP文件打包下载zip
Mar 01 PHP
Redis构建分布式锁
Mar 28 PHP
PHP实现生成推广海报的方法详解
Mar 14 PHP
laravel 操作数据库常用函数的返回值方法
Oct 11 PHP
php图片处理函数获取类型及扩展名实例
Nov 19 #PHP
PHP图片处理之图片旋转和图片翻转实例
Nov 19 #PHP
基于递归实现的php树形菜单代码
Nov 19 #PHP
php常用的url处理函数总结
Nov 19 #PHP
PHP调用wsdl文件类型的接口代码分享
Nov 19 #PHP
PHP中常用的字符串格式化函数总结
Nov 19 #PHP
php管理nginx虚拟主机shell脚本实例
Nov 19 #PHP
You might like
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
PHP微信分享开发详解
2017/01/14 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
JavaScript 模仿vbs中的 DateAdd() 函数的代码
2007/08/13 Javascript
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
在javascript中执行任意html代码的方法示例解读
2013/12/25 Javascript
利用Keydown事件阻止用户输入实现代码
2014/03/11 Javascript
jquery幻灯片插件bxslider样式改进实例
2014/10/15 Javascript
jQuery实现的数值范围range2dslider选取插件特效多款代码分享
2015/08/27 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
JS获取及验证开始结束日期的方法
2016/08/20 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
2016/08/25 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
js微信扫描二维码登录网站技术原理
2016/12/01 Javascript
微信小程序 开发之顶部导航栏实例代码
2017/02/23 Javascript
微信小程序开发之实现自定义Toast弹框
2017/06/08 Javascript
在Vue.js中使用TypeScript的方法
2020/03/19 Javascript
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
Python中的Numeric包和Numarray包使用教程
2015/04/13 Python
python中类变量与成员变量的使用注意点总结
2017/04/29 Python
用matplotlib画等高线图详解
2017/12/14 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
解决Python 使用h5py加载文件,看不到keys()的问题
2019/02/08 Python
使用Django简单编写一个XSS平台的方法步骤
2019/03/25 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
2019/04/11 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
医学生自我鉴定范文
2014/03/26 职场文书
社区关爱留守儿童活动方案
2014/08/22 职场文书
税务职业生涯规划书范文
2014/09/16 职场文书
傲慢与偏见电影观后感
2015/06/10 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
Python的三个重要函数详解
2022/01/18 Python
VW、VH适配移动端的解决方案与常见问题
2023/05/21 HTML / CSS