PHP图片处理之使用imagecopy函数添加图片水印实例
深入PHP图片处理——运用imagecopy函数为图片添加水印实例
在数字时代,图片版权问题日益受到重视。为了防止图片被盗用,为图片添加水印成为了一种常见的做法。水印不仅可以标明版权信息,还能起到美化图片的作用。本文将介绍如何使用PHP的GD库中的imagecopy函数来添加图片水印。
让我们了解一下imagecopy函数的基本用法。此函数的作用是将一张图片的一部分复制到另一张图片上。其函数原型为:
```php
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。这个函数将为背景图片添加图片水印,背景图片和水印图片的格式分别为jpeg和gif。
```php
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);
// 创建水印图片的资源
$waterImage = imagecreatefromgif($water);
// 使用imagecopy()函数将水印图片复制到背景图片上
imagecopy($back, $waterImage, $posX, $posY, 0, 0, $w_w, $w_h);
// 保存带有水印的背景图片
imagejpeg($back, $filename);
// 销毁资源
imagedestroy($back);
imagedestroy($waterImage);
}
// 使用示例:watermark("brophp.jpg", "logo.gif");
```
这个函数首先获取背景图片和水印图片的宽度和高度,然后随机确定水印在背景图片中的位置。接着,使用imagecopy函数将水印图片复制到背景图片的随机位置上,最后保存带有水印的图片。在此过程中,我们也要注意资源的创建和销毁,避免内存泄漏。
使用PHP的imagecopy函数为图片添加水印是一种简单而有效的方法。通过这个函数,我们可以轻松地为图片添加水印,保护图片的版权。
编程语言
- PHP图片处理之使用imagecopy函数添加图片水印实例
- php使用GD2绘制几何图形示例
- thinkPHP5框架闭包函数与子查询传参用法示例
- PHP中Closure类的使用方法及详解
- PHP+MySQL实现消息队列的方法分析
- PHP使用递归生成文章树
- PHP静态方法和静态属性及常量属性的区别与介绍
- iframe跨域通信封装详解
- js调用Flex中的方法并向flex中传参及flex调用js示例
- 微信小程序 常用工具类详解及实例
- 浅析vue component 组件使用
- jquery滚动加载数据的方法
- Javascript中String的常用方法实例分析
- 详解使用vue脚手架工具搭建vue-webpack项目
- PHP去除字符串最后一个字符的三种方法实例
- js实现表单多按钮提交action的处理方法