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 相关文章推荐
浅析PHP中Collection 类的设计
Jun 21 PHP
php实现统计邮件大小的方法
Aug 06 PHP
php实现图片添加水印功能
Feb 13 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
Oct 13 PHP
PHP删除指定目录中的所有目录及文件的方法
Feb 26 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
php微信开发之自定义菜单实现
Nov 18 PHP
Yii2下session跨域名共存的解决方案
Feb 04 PHP
Thinkphp实现站点静态化的方法详解
Mar 21 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
Sep 15 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
Nov 20 PHP
PHP按符号截取字符串的指定部分的实现方法
Sep 10 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+ajax实现图片文件上传功能实例
2014/06/17 PHP
php简单统计字符串单词数量的方法
2015/06/19 PHP
php读取der格式证书乱码解决方法
2015/06/22 PHP
php 实现301重定向跳转实例代码
2016/07/18 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
深入解析PHP底层机制及相关原理
2020/12/11 PHP
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
JavaScript转换二进制编码为ASCII码的方法
2015/04/16 Javascript
jQuery实现动态删除LI的方法
2017/05/30 jQuery
使用Vue写一个datepicker的示例
2018/01/27 Javascript
获取layer.open弹出层的返回值方法
2018/08/20 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
vue组件命名和props命名代码详解
2019/09/01 Javascript
微信小程序 轮播图实现原理及优化详解
2019/09/29 Javascript
基于vue.js实现购物车
2020/01/15 Javascript
在vue中通过render函数给子组件设置ref操作
2020/11/17 Vue.js
让Python代码更快运行的5种方法
2015/06/21 Python
python3.5使用tkinter制作记事本
2016/06/20 Python
Python 中的with关键字使用详解
2016/09/11 Python
Python实现的弹球小游戏示例
2017/08/01 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
python的pygal模块绘制反正切函数图像方法
2019/07/16 Python
python list数据等间隔抽取并新建list存储的例子
2019/11/27 Python
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
赫里福德的一家乡村零售商店:Philip Morris & Son
2017/06/25 全球购物
英国领先的隐形眼镜在线供应商:Lenstore.co.uk
2019/11/24 全球购物
普通院校学生的自荐信
2013/11/27 职场文书
幼儿教师考核制度
2014/01/25 职场文书
十八届三中全会学习方案
2014/02/16 职场文书
工作过失检讨书
2014/02/23 职场文书
商务英语专业毕业生求职信
2014/07/06 职场文书
单位工作证明范文
2014/09/14 职场文书
财务人员个人工作总结
2015/02/27 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书
《宝可梦》动画制作25周年到来 官方发布特别纪念视频
2022/04/01 日漫
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL