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 相关文章推荐
PHP5.2下chunk_split()函数整数溢出漏洞 分析
Jun 06 PHP
php中explode与split的区别介绍
Oct 03 PHP
PHP读取xml方法介绍
Jan 12 PHP
PHP 自定义错误处理函数trigger_error()
Mar 26 PHP
详解PHP导入导出CSV文件
Nov 03 PHP
php实现mysql备份恢复分卷处理的方法
Dec 26 PHP
php操作(删除,提取,增加)zip文件方法详解
Mar 12 PHP
php版微信公众号自定义分享内容实现方法
Sep 22 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
Nov 14 PHP
PHP实现活动人选抽奖功能
Apr 19 PHP
PHP实现的Redis多库选择功能单例类
Jul 27 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
Nov 20 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实现的ping端口函数实例
2014/11/12 PHP
Symfony2学习笔记之控制器用法详解
2016/03/17 PHP
php 解析xml 的四种方法详细介绍
2016/10/26 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
document.designMode的功能与使用方法介绍
2007/11/22 Javascript
jQuery find和children方法使用
2011/01/31 Javascript
火狐textarea输入法的bug的触发及解决
2013/07/24 Javascript
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
非常优秀的JS图片轮播插件Swiper的用法
2017/01/03 Javascript
BootStrap Datetimepicker 汉化的实现代码
2017/02/10 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
详解Node项目部署到云服务器上
2017/07/12 Javascript
实现一个完整的Node.js RESTful API的示例
2017/09/29 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
小程序使用watch监听数据变化的方法详解
2019/09/20 Javascript
使用vscode快速建立vue模板过程详解
2019/10/10 Javascript
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
[46:03]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
Python通过future处理并发问题
2017/10/17 Python
python中logging包的使用总结
2018/02/28 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
2018/05/10 Python
使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
2019/05/28 Python
对python 中class与变量的使用方法详解
2019/06/26 Python
浅析Python __name__ 是什么
2020/07/07 Python
python如何使用腾讯云发送短信
2020/09/17 Python
分享8款纯CSS3实现的搜索框功能
2017/09/14 HTML / CSS
美国折衷生活方式品牌:Robert Graham
2018/07/13 全球购物
八项规定整改方案
2014/02/21 职场文书
法制演讲稿
2014/09/10 职场文书
个人作风建设总结
2014/10/23 职场文书
2014年施工员工作总结
2014/11/18 职场文书
高三英语教学计划
2015/01/23 职场文书
MySQL 分页查询的优化技巧
2021/05/12 MySQL
【DOTA2】总决赛血虐~ XTREME GAMING vs MAGMA - OGA DOTA PIT 2022 CN
2022/04/02 DOTA