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函数,在不影响原有图片的情况下添加水印,可以很方便地实现这个目的。