php水印怎么在右下角
时间 : 2023-04-02 08:14:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

添加水印是在图片上加上一些标记的过程,可以用来保护图片的版权和身份,也可以用来美化图片。在 PHP 中,添加水印可以通过 GD 库来实现。

要在图片右下角添加水印,可以按照以下步骤实现:

1. 打开原始图片

```php

$srcImg = imagecreatefrompng('path/to/src/image.png');

2. 读取水印图片

```php

$watermarkImg = imagecreatefrompng('path/to/watermark/image.png');

3. 获取原始图片和水印图片的宽度和高度

```php

$srcImgWidth = imagesx($srcImg);

$srcImgHeight = imagesy($srcImg);

$watermarkImgWidth = imagesx($watermarkImg);

$watermarkImgHeight = imagesy($watermarkImg);

4. 计算水印放置的位置

右下角的位置可以通过原始图片的宽度和高度减去水印图片的宽度和高度得到:

```php

$watermarkX = $srcImgWidth - $watermarkImgWidth;

$watermarkY = $srcImgHeight - $watermarkImgHeight;

5. 在原始图片上添加水印

```php

imagecopy($srcImg, $watermarkImg, $watermarkX, $watermarkY, 0, 0, $watermarkImgWidth, $watermarkImgHeight);

6. 保存添加水印后的图片

```php

imagepng($srcImg, 'path/to/result/image.png');

完整代码示例:

```php

$srcImg = imagecreatefrompng('path/to/src/image.png');

$watermarkImg = imagecreatefrompng('path/to/watermark/image.png');

$srcImgWidth = imagesx($srcImg);

$srcImgHeight = imagesy($srcImg);

$watermarkImgWidth = imagesx($watermarkImg);

$watermarkImgHeight = imagesy($watermarkImg);

$watermarkX = $srcImgWidth - $watermarkImgWidth;

$watermarkY = $srcImgHeight - $watermarkImgHeight;

imagecopy($srcImg, $watermarkImg, $watermarkX, $watermarkY, 0, 0, $watermarkImgWidth, $watermarkImgHeight);

imagepng($srcImg, 'path/to/result/image.png');

需要注意的是,添加水印会改变原始图片的像素信息,如果想保留原始图片,请先备份原始图片。同时,如果要添加中文水印,需要使用字体文件,并进行相关的编码处理。

PHP水印处理可以使用GD库,将图片打上水印。在右下角加上水印可以通过以下步骤实现:

1. 打开原始图片,将其转化为GD库处理对象。

```php

$sourceImg = imagecreatefromjpeg($imgUrl);

2. 加载水印文字或图片。

```php

$waterMark = imagecreatefrompng($watermarkUrl);

3. 计算出水印位置,即右下角位置坐标。可以使用imagesx()函数得到原始图片宽度,imagesy()函数得到原始图片高度,再根据水印宽度和高度计算得到水印位置。

```php

$positionX = imagesx($sourceImg) - imagesx($waterMark);

$positionY = imagesy($sourceImg) - imagesy($waterMark);

4. 将水印合成到原始图片中,使用imagecopy()函数将水印合成到原始图片指定位置。

```php

imagecopy($sourceImg, $waterMark, $positionX, $positionY, 0, 0, imagesx($waterMark), imagesy($waterMark));

5. 保存合成后的图片。

```php

imagejpeg($sourceImg, $outputUrl, 80);

完整的PHP水印函数如下:

```php

function addWatermarkToImage($imgUrl, $watermarkUrl, $outputUrl) {

// 打开原始图片

$sourceImg = imagecreatefromjpeg($imgUrl);

// 加载水印图片

$waterMark = imagecreatefrompng($watermarkUrl);

// 计算水印位置

$positionX = imagesx($sourceImg) - imagesx($waterMark);

$positionY = imagesy($sourceImg) - imagesy($waterMark);

// 将水印合成到原始图片

imagecopy($sourceImg, $waterMark, $positionX, $positionY, 0, 0, imagesx($waterMark), imagesy($waterMark));

//保存合成后的图片

imagejpeg($sourceImg, $outputUrl, 80);

}

调用函数:

```php

$imgUrl = 'example.jpg';

$watermarkUrl = 'watermark.png';

$outputUrl = 'example_with_watermark.jpg';

addWatermarkToImage($imgUrl, $watermarkUrl, $outputUrl);

以上是在右下角加水印的方法,你也可以修改`$positionX`和`$positionY`计算方法来调整水印位置。