PHP实现图片加水印功能

1. 概述

在网站前端设计中,为了保证设计师的版权,或者为了达到某些特殊的设计要求,我们需要在图片上添加水印。而在使用PHP构建的网站中,我们可以很方便地通过调用PHP的函数来为图片添加水印。

2. PHP中实现图片加水印的方式

2.1 使用imagecopy函数

使用imagecopy函数可以在原有图片的基础上添加水印。在使用这种方式时,我们需要添加两个参数——要添加的水印图片和原有图片。在使用imagecopy函数时,需要注意水印图片的尺寸问题。

2.2 使用imagestring函数

使用imagestring函数需要两个参数——要添加的水印文字和原有图片。同样地,在使用这种方式时,需要注意字体、字号等问题。

3. 实例

3.1 使用imagecopy函数实例

以下代码展示了如何使用imagecopy函数在原有图片中添加png格式的水印图片。

// 将水印图片读取出来,这里用的是png格式

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

// 原有图片路径

$image_path = 'example.jpg';

// 创建图像资源

$img = imagecreatefromjpeg($image_path);

// 获取水印宽度、高度

$watermark_width = imagesx($watermark);

$watermark_height = imagesy($watermark);

// 将水印添加到原有图片上

$dst_x = imagesx($img) - $watermark_width - 10;

$dst_y = imagesy($img) - $watermark_height - 10;

imagecopy($img, $watermark, $dst_x, $dst_y, 0, 0, $watermark_width, $watermark_height);

// 将图像输出到浏览器

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

imagejpeg($img);

3.2 使用imagestring函数实例

以下代码展示了如何使用imagestring函数在原有图片中添加水印文字。

// 原有图片路径

$image_path = 'example.jpg';

// 创建图像资源

$img = imagecreatefromjpeg($image_path);

// 在原有图片中添加“Hello World”文字

$text_color = imagecolorallocate($img, 0, 0, 0);

$x = 20;

$y = 20;

imagestring($img, 5, $x, $y, "Hello World", $text_color);

// 将图像输出到浏览器

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

imagejpeg($img);

4. 总结

使用PHP实现图片加水印功能可以在设计中起到重要的作用。通过使用imagecopy函数或者imagestring函数,在不影响原有图片的情况下添加水印,可以很方便地实现这个目的。

后端开发标签