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中添加水印的步骤。当然,还可以根据自己的需求进行调整和修改。
上一篇
php中的对象怎么定义的
下一篇
网页制作php后端怎么做
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章