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 相关文章推荐
如何实现给定日期的若干天以后的日期
Oct 09 PHP
PHP程序员面试 切忌急功近利(更需要注重以后的发展)
Sep 01 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
Jun 18 PHP
php中用date函数获取当前时间有误的解决办法
Aug 02 PHP
javascript数组与php数组的地址传递及值传递用法实例
Jan 22 PHP
php判断两个浮点数是否相等的方法
Mar 14 PHP
详解PHP的Yii框架中扩展的安装与使用
Apr 01 PHP
PHP中Socket连接及读写数据超时问题分析
Jul 19 PHP
PHP实现图片批量打包下载功能
Mar 01 PHP
PHP使用Redis实现防止大并发下二次写入的方法
Oct 09 PHP
PHP面向对象之里氏替换原则简单示例
Apr 08 PHP
laravel实现按月或天或小时统计mysql数据的方法
Oct 09 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
Javascript与PHP验证用户输入URL地址是否正确
2014/10/09 PHP
php获取Google机器人访问足迹的方法
2015/04/15 PHP
thinkPHP简单实现多个子查询语句的方法
2016/12/05 PHP
PHP编程实现csv文件导入mysql数据库的方法
2017/04/29 PHP
微信推送功能实现方式图文详解
2019/07/12 PHP
PHP高并发和大流量解决方案整理
2021/03/09 PHP
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
2011/07/15 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
2014/05/02 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
2016/05/17 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
jQuery DOM节点的遍历方法小结
2017/08/15 jQuery
vue 登录滑动验证实现代码
2018/08/24 Javascript
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
微信小程序拍照和摄像功能实现方法示例
2019/02/01 Javascript
jquery树形插件zTree高级使用详解
2019/08/16 jQuery
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
python3.5实现socket通讯示例(TCP)
2017/02/07 Python
Python、PyCharm安装及使用方法(Mac版)详解
2017/04/28 Python
使用tensorflow实现AlexNet
2017/11/20 Python
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
Python 判断文件或目录是否存在的实例代码
2018/07/19 Python
Python中pymysql 模块的使用详解
2019/08/12 Python
Python2与Python3的区别详解
2020/02/09 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
python实现快速文件格式批量转换的方法
2020/10/16 Python
HTML5新增的标签和属性归纳总结
2018/05/02 HTML / CSS
Canvas实现保存图片到本地的示例代码
2018/06/28 HTML / CSS
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
ONLY德国官方在线商店:购买时尚女装
2017/09/21 全球购物
初中生考试作弊检讨书
2014/12/14 职场文书
2015年学校安全工作总结
2015/04/22 职场文书