php图片添加水印怎么用
时间 : 2023-03-28 13:13:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

使用PHP给图片添加水印,需要用到PHP的GD库和图像处理函数。下面提供一种简单的方法:

1. 创建水印图片

首先,我们需要创建一个水印图片。可以使用任何图片编辑软件,例如Photoshop。将水印图片制作成透明背景的PNG图片,这样的话,它将不会覆盖原始图片的背景。

2. 读取原始图片

使用gd库中的`imagecreatefrom***`系列函数可以读取原始图片,例如`imagecreatefromjpeg`可以读取jpeg图片,`imagecreatefrompng`可以读取png图片等。

```php

// 读取原始图片

$srcImg = imagecreatefromjpeg('original.jpg');

3. 读取水印图片

同样使用`imagecreatefrom***`函数可以读取水印图片。

```php

// 读取水印图片

$watermarkImg = imagecreatefrompng('watermark.png');

4. 将水印图片应用到原始图片上

我们可以将水印图片放置在原始图片的右下角。首先,需要获取原始图片和水印图片的尺寸:

```php

// 获取原始图片尺寸

$srcImgWidth = imagesx($srcImg); // 宽度

$srcImgHeight = imagesy($srcImg); // 高度

// 获取水印图片尺寸

$watermarkImgWidth = imagesx($watermarkImg); // 宽度

$watermarkImgHeight = imagesy($watermarkImg); // 高度

然后,将水印图片复制到原始图片上。通过`imagecopy`函数可以实现。

```php

// 将水印图片复制到原始图片上

imagecopy(

$srcImg, // 原始图片对象

$watermarkImg, // 水印图片对象

$srcImgWidth - $watermarkImgWidth, // 水印图片左上角x坐标

$srcImgHeight - $watermarkImgHeight, // 水印图片左上角y坐标

0, 0, // 水印图片左上角所处位置

$watermarkImgWidth, // 水印图片宽度

$watermarkImgHeight // 水印图片高度

);

5. 输出带水印的图片

最后,使用`image***`系列函数输出处理完的图片。

```php

// 输出带水印的图片

header('Content-Type: image/jpeg');

imagejpeg($srcImg);

完整代码如下:

```php

// 读取原始图片

$srcImg = imagecreatefromjpeg('original.jpg');

// 读取水印图片

$watermarkImg = imagecreatefrompng('watermark.png');

// 获取原始图片尺寸

$srcImgWidth = imagesx($srcImg); // 宽度

$srcImgHeight = imagesy($srcImg); // 高度

// 获取水印图片尺寸

$watermarkImgWidth = imagesx($watermarkImg); // 宽度

$watermarkImgHeight = imagesy($watermarkImg); // 高度

// 将水印图片复制到原始图片上

imagecopy(

$srcImg, // 原始图片对象

$watermarkImg, // 水印图片对象

$srcImgWidth - $watermarkImgWidth, // 水印图片左上角x坐标

$srcImgHeight - $watermarkImgHeight, // 水印图片左上角y坐标

0, 0, // 水印图片左上角所处位置

$watermarkImgWidth, // 水印图片宽度

$watermarkImgHeight // 水印图片高度

);

// 输出带水印的图片

header('Content-Type: image/jpeg');

imagejpeg($srcImg);

最后提醒一下,在使用gd库的函数时,如果没有开启`php_gd2.dll`,需要打开它。

在PHP中添加水印可以为我们的图片提供更多的保护和标识。添加水印会在图片的一部分区域上添加一些额外的信息,这个信息可以是公司的名称,网址,版权信息等等。

在PHP中,我们可以使用GD库来处理图片,并在图片上添加水印。GD库是一个PHP扩展程序,它可以生成和修改图片,它提供了一系列的函数来处理图片,并可以支持多种格式。在使用GD库之前,我们需要先确认是否已安装该库。具体的安装方法可以参考PHP官方文档:https://www.php.net/manual/zh/book.image.php

下面我们来看一下如何使用GD库在PHP中添加水印:

1.打开图片

我们可以使用imagecreatefromjpeg()函数来打开一张JPEG格式的图片,如果是其他格式则需要使用不同的函数。

$src = imagecreatefromjpeg('source_image.jpg');

2.打开水印图片

与打开原始图片相同,我们还需要打开一张水印图片。

$watermark = imagecreatefrompng('watermark.png');

3.获取图片的宽度和高度

我们需要获取原始图片和水印图片的宽度和高度,以便后续确定水印的位置和大小。

$src_width = imagesx($src);

$src_height = imagesy($src);

$watermark_width = imagesx($watermark);

$watermark_height = imagesy($watermark);

4.将水印添加到原始图片上

首先确定水印的位置,一般情况下水印在右下角。然后使用imagecopy()函数将水印添加到原始图片上。

$pos_x = $src_width - $watermark_width - 10; //水印位置,右下角离边界10像素

$pos_y = $src_height - $watermark_height - 10;

imagecopy($src, $watermark, $pos_x, $pos_y, 0, 0, $watermark_width, $watermark_height);

5.输出图片

添加水印后的图片需要输出,使用imagejpeg()函数进行输出。

header('Content-type: image/jpeg');

imagejpeg($src);

完整代码:

$src = imagecreatefromjpeg('source_image.jpg');

$watermark = imagecreatefrompng('watermark.png');

$src_width = imagesx($src);

$src_height = imagesy($src);

$watermark_width = imagesx($watermark);

$watermark_height = imagesy($watermark);

$pos_x = $src_width - $watermark_width - 10; //水印位置,右下角离边界10像素

$pos_y = $src_height - $watermark_height - 10;

imagecopy($src, $watermark, $pos_x, $pos_y, 0, 0, $watermark_width, $watermark_height);

header('Content-type: image/jpeg');

imagejpeg($src);

以上就是使用GD库在PHP中添加水印的步骤。当然,还可以根据自己的需求进行调整和修改。