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 4.2书写安全的脚本
Oct 09 PHP
PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)
Jul 02 PHP
PHP时间格式控制符对照表分享
Jul 23 PHP
php获取从百度搜索进入网站的关键词的详细代码
Jan 08 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(一)
Jun 23 PHP
Yii实现MySQL多数据库和读写分离实例分析
Dec 03 PHP
php实现可用于mysql,mssql,pg数据库操作类
Dec 13 PHP
如何使用Gitblog和Markdown建自己的博客
Jul 31 PHP
PHP PDO操作MySQL基础教程
Jun 05 PHP
PHP中phar包的使用教程
Jun 14 PHP
php实现微信企业号支付个人的方法详解
Jul 26 PHP
PHP 对象继承原理与简单用法示例
Apr 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
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
2016/11/23 PHP
jquery中:input和input的区别分析
2011/07/13 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
display和visibility的区别示例介绍
2014/02/26 Javascript
javascript进行数组追加方法小结
2014/06/16 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
jQuery实现移动端滑块拖动选择数字效果
2015/12/24 Javascript
node.js微信公众平台开发教程
2016/03/04 Javascript
微信小程序显示下拉列表功能【附源码下载】
2017/12/12 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
微信小程序实现无限滚动列表
2020/05/29 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
2020/04/04 jQuery
解决echarts数据二次渲染不成功的问题
2020/07/20 Javascript
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
在Python中使用dict和set方法的教程
2015/04/27 Python
Python映射拆分操作符用法实例
2015/05/19 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
python socket通信编程实现文件上传代码实例
2019/12/14 Python
python文件排序的方法总结
2020/09/13 Python
基于Python实现体育彩票选号器功能代码实例
2020/09/16 Python
印度低票价航空公司:GoAir
2017/10/11 全球购物
捷克多品牌在线时尚商店:ANSWEAR.cz
2020/10/03 全球购物
求职信模版
2013/11/30 职场文书
秋季运动会加油稿200字
2014/01/11 职场文书
公务员保密承诺书
2014/03/27 职场文书
红领巾心向党演讲稿
2014/09/10 职场文书
走进毛泽东观后感
2015/06/04 职场文书
Java实现多线程聊天室
2021/06/26 Java/Android
Redis中一个String类型引发的惨案
2021/07/25 Redis
nginx负载功能+nfs服务器功能解析
2022/02/28 Servers
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL