怎么在php中添加水印
时间 : 2023-03-26 11:19:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性
在PHP中添加水印一般分为两种方式:文字水印和图片水印。
1. 文字水印
文字水印的实现比较简单,只需要在图片上添加一段文字即可。以下是一个示例代码:
```php
// 加载图片
$image = imagecreatefromjpeg('example.jpg');
// 设置文字颜色
$color = imagecolorallocate($image, 255, 255, 255);
// 设置字体样式和大小
$font = 'arial.ttf'; // 字体文件路径和文件名
$fontSize = 20;
// 添加水印
$text = 'example.com'; // 水印内容
imagettftext($image, $fontSize, 0, 10, 30, $color, $font, $text);
// 输出图片并保存
header('Content-Type: image/jpeg');
imagejpeg($image, 'example_with_watermark.jpg');
// 释放资源
imagedestroy($image);
该代码会在指定图片上添加一个 `example.com` 的水印,并保存为新的图片文件。
2. 图片水印
图片水印的实现需要先加载一张水印图片,然后将其覆盖到原图上。以下是一个示例代码:
```php
// 加载图片和水印
$image = imagecreatefromjpeg('example.jpg');
$watermark = imagecreatefrompng('watermark.png');
// 获取原图和水印的尺寸信息
$imageWidth = imagesx($image);
$imageHeight = imagesy($image);
$watermarkWidth = imagesx($watermark);
$watermarkHeight = imagesy($watermark);
// 计算水印坐标(在原图中居中)
$watermarkX = ($imageWidth - $watermarkWidth) / 2;
$watermarkY = ($imageHeight - $watermarkHeight) / 2;
// 添加水印
imagecopy($image, $watermark, $watermarkX, $watermarkY, 0, 0, $watermarkWidth, $watermarkHeight);
// 输出图片并保存
header('Content-Type: image/jpeg');
imagejpeg($image, 'example_with_watermark.jpg');
// 释放资源
imagedestroy($image);
imagedestroy($watermark);
该代码会在指定图片上添加一个水印图片,并保存为新的图片文件。
以上是两种方式的实现方式,可以根据实际需求选择使用。
在PHP中添加水印可以采用GD库来实现。GD库是一个用来动态创建图像的PHP程序扩展库,可以利用它来生成、处理和输出图像。
添加水印的步骤:
1. 打开原始图片,即需要添加水印的图片
2. 创建水印图片,即水印图片的来源。可以是一张Logo,一行文字等。
3. 将水印图片复制到原始图片上,并设置水印图片的位置、透明度、大小等参数。
4. 输出处理后的图片。
下面是具体的代码实现:
```php
//打开原始图片
$srcImg = imagecreatefromjpeg('original.jpg');
//创建水印图片
$watermark = imagecreatefrompng('watermark.png');
//获取原始图片和水印图片的宽度和高度
$srcImgWidth = imagesx($srcImg);
$srcImgHeight = imagesy($srcImg);
$watermarkWidth = imagesx($watermark);
$watermarkHeight = imagesy($watermark);
//设置水印图片的位置,这里设置为原始图片底部居中
$positionX = ($srcImgWidth - $watermarkWidth) / 2;
$positionY = $srcImgHeight - $watermarkHeight - 10;
//将水印图片复制到原始图片上,并设置水印图片的透明度为30%
imagecopymerge($srcImg, $watermark, $positionX, $positionY, 0, 0, $watermarkWidth, $watermarkHeight, 30);
//输出处理后的图片
header('Content-Type: image/jpeg');
imagejpeg($srcImg);
imagedestroy($srcImg);
imagedestroy($watermark);
其中,imagecreatefromjpeg()函数用于打开原始图片(这里假设原始图片是JPG格式的),imagecreatefrompng()函数用于创建水印图片(这里假设水印图片是PNG格式的)。imagesx()函数和imagesy()函数用于获取图片的宽度和高度。
然后,可以使用imagecopymerge()函数将水印图片复制到原始图片上,并设置水印图片的透明度为30%。最后,使用imagejpeg()函数输出处理后的图片。同时要记得使用imagedestroy()函数释放资源。
需要注意的是,PHP需要开启GD库才能运行以上代码。可以在php.ini配置文件中将extension=php_gd2.dll的前面的分号去掉,或者在代码中添加extension_loaded(‘gd’)的判断来确保GD库已经加载。
实际使用中,还需要根据不同的情况来调整参数,比如水印图片的大小和位置、透明度等。
上一篇
php图形计算器怎么检验
下一篇
php怎么打开不用浏览器
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章