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中读取和写入WORD文档的代码
Apr 09 PHP
php相当简单的分页类
Oct 02 PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
Jan 12 PHP
解析php5配置使用pdo
Jul 03 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
Oct 16 PHP
php保存信息到当前Session的方法
Mar 16 PHP
深入浅出php socket编程
May 13 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
Jul 29 PHP
PHP的Yii框架中View视图的使用进阶
Mar 29 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
Oct 17 PHP
PHP中函数gzuncompress无法使用的解决方法
Mar 02 PHP
PHP编程一定要改掉的5个不良习惯
Sep 18 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
laravel安装zend opcache加速器教程
2015/03/02 PHP
php学习笔记之mb_strstr的基本使用
2018/02/03 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
javascript得到XML某节点的子节点个数的脚本
2008/10/11 Javascript
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
jquery遍历select元素(实例讲解)
2013/12/31 Javascript
生成二维码方法汇总
2014/12/26 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
2019/06/22 Javascript
使用Bootstrap做一个朝代历史表
2019/12/10 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
2020/09/22 Javascript
Python中函数的用法实例教程
2014/09/08 Python
python中pycurl库的用法实例
2014/09/30 Python
用Python编写生成树状结构的文件目录的脚本的教程
2015/05/04 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
用tensorflow搭建CNN的方法
2018/03/05 Python
利用python如何处理百万条数据(适用java新手)
2018/06/06 Python
matplotlib实现热成像图colorbar和极坐标图的方法
2018/12/13 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
Python字符串、列表、元组、字典、集合的补充实例详解
2019/12/20 Python
pandas创建DataFrame的7种方法小结
2020/06/14 Python
纯CSS3实现圆圈动态发光特效动画的示例代码
2021/03/08 HTML / CSS
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
给酒店员工的表扬信
2014/01/11 职场文书
父亲八十大寿答谢词
2014/01/23 职场文书
老龄工作先进事迹
2014/08/15 职场文书
公证委托书标准格式
2014/09/11 职场文书
前台岗位职责范本
2015/04/16 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
Mysql 文件配置解析介绍
2022/05/06 MySQL