PHP图片处理之使用imagecopy函数添加图片水印实例

网络编程 2025-03-24 20:23www.168986.cn编程入门

深入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使用GD2绘制几何图形示例 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by