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 相关文章推荐
DOMXML函数笔记
Oct 09 PHP
一个程序下载的管理程序(四)
Oct 09 PHP
PHP 导出数据到淘宝助手CSV的方法分享
Feb 27 PHP
PHP自定义函数收代码
Aug 01 PHP
使用PHP实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
Oct 09 PHP
PHP系列学习之日期函数使用介绍
Aug 18 PHP
php常用Stream函数集介绍
Jun 24 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
May 20 PHP
详解PHP编码转换函数应用技巧
Oct 22 PHP
PHP精确计算功能示例
Nov 29 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
PHP多维数组排序array详解
Nov 21 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
福利彩票幸运号码自动生成器
2006/10/09 PHP
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
PHP 创建文件(文件夹)以及目录操作代码
2010/03/04 PHP
php allow_url_include的应用和解释
2010/04/22 PHP
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
php中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
PHP使用pear自带的mail类库发邮件的方法
2015/07/08 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
背景音乐每次刷新都可以自动更换
2007/02/01 Javascript
jquery indexOf使用方法
2013/08/19 Javascript
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
2014/08/03 NodeJs
JavaScript中发布/订阅模式的简单实例
2014/11/05 Javascript
js实现动画特效的文字链接鼠标悬停提示的方法
2015/03/02 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
zTree树形插件异步加载方法详解
2017/06/14 Javascript
结合mint-ui移动端下拉加载实践方法总结
2017/11/08 Javascript
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
2019/04/01 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
2020/02/04 jQuery
[00:55]深扒TI7聊天轮盘语音出处3
2017/05/11 DOTA
Python基于select实现的socket服务器
2016/04/13 Python
Python使用sftp实现上传和下载功能(实例代码)
2017/03/14 Python
PyTorch学习笔记之回归实战
2018/05/28 Python
python有序查找算法 二分法实例解析
2020/02/18 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
《兰亭集序》教学反思
2014/02/11 职场文书
大四学生找工作的自荐信
2014/03/27 职场文书
校园会短篇的广播稿
2014/10/21 职场文书
学习走群众路线心得体会
2014/11/05 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
暑假打工感想
2015/08/07 职场文书
《蚂蚁和蝈蝈》教学反思
2016/02/22 职场文书
带你学习MySQL执行计划
2021/05/31 MySQL
Python 处理表格进行成绩排序的操作代码
2021/07/26 Python