php水印制作函数

在PHP中,制作水印是一个比较常用、常见的操作。PHP提供了许多不同的方式来实现这一功能,其中最常用的是使用GD库。GD库是PHP程序员用来处理图像的标准库之一,它提供了各种各样的操作来处理图像,比如生成缩略图、添加水印等。

在使用GD库制作水印时,需要先加载需要加水印的图片,然后通过GD库中的函数,将图片的像素点按照一定的规则,加上水印,在给定的位置进行绘制。

下面是一个简单的PHP函数来实现添加水印的功能:

```php

function ImageAddWatermark($srcImgPath, $watermarkImgPath, $posX = 0, $posY = 0)

{

$srcImg = imagecreatefromjpeg($srcImgPath);

$watermarkImg = imagecreatefrompng($watermarkImgPath);

$srcImgSize = getimagesize($srcImgPath);

$watermarkImgSize = getimagesize($watermarkImgPath);

imagecopy($srcImg, $watermarkImg, $posX, $posY, 0, 0, $watermarkImgSize[0], $watermarkImgSize[1]);

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

imagejpeg($srcImg);

imagedestroy($srcImg);

imagedestroy($watermarkImg);

}

```

这个函数首先会加载需要打上水印的原始图片和水印图片,然后通过调用`imagecopy()`来将水印图片复制到原始图片上,并在给定的位置进行绘制。最后按照原始图片的格式输出处理后的结果,并释放内存。

在类内部调用这个函数时,可以直接使用`$this`关键字来引用当前类的属性或方法。例如,在一个类中,我们可以定义一个方法来添加水印:

```php

class Watermark {

private $imgPath;

private $watermarkPath;

private $posX;

private $posY;

function __construct($imgPath, $watermarkPath, $posX = 0, $posY = 0)

{

$this->imgPath = $imgPath;

$this->watermarkPath = $watermarkPath;

$this->posX = $posX;

$this->posY = $posY;

}

function AddWatermark()

{

$srcImg = imagecreatefromjpeg($this->imgPath);

$watermarkImg = imagecreatefrompng($this->watermarkPath);

$srcImgSize = getimagesize($this->imgPath);

$watermarkImgSize = getimagesize($this->watermarkPath);

imagecopy($srcImg, $watermarkImg, $this->posX, $this->posY, 0, 0, $watermarkImgSize[0], $watermarkImgSize[1]);

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

imagejpeg($srcImg);

imagedestroy($srcImg);

imagedestroy($watermarkImg);

}

}

```

这个类中有4个属性分别代表原始图片路径、水印图片路径以及水印在原始图片中的位置。在类的构造函数中,我们通过`$this`来访问类的属性,并将传入的参数赋值给这些属性。

在`AddWatermark()`方法中,我们使用相同的方式来在原始图片上添加水印。注意,在方法内部,我们使用`$this->imgPath`和`$this->watermarkPath`来访问类的属性。

在实例化这个类时,可以根据需要传入参数,例如:

```php

$wm = new Watermark('test.jpg', 'wm.png', 20, 50);

$wm->AddWatermark();

```

这里我们将原始图片的路径、水印图片的路径以及水印在原始图片中的位置作为参数传入`Watermark`类的构造函数,并调用`AddWatermark()`方法来添加水印。

到这里,就向大家介绍了PHP制作水印的方法,以及如何在类中内部调用函数。希望能对大家有所帮助。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/

点赞(101) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部