欢迎访问宙启技术站
智能推送

PHP函数库的应用:实现图片水印操作

发布时间:2023-07-06 03:08:18

图片水印是在图片上加上一些文字或者图片的一种处理方式,常常用于防止图片被盗用或者用于商业推广。在PHP中,可以使用函数库来实现图片水印操作。

首先,PHP需要支持GD库,GD库是一个用来处理图片的函数库,可以通过以下代码来判断是否支持GD库:

<?php
if (!function_exists('gd_info')) {
    echo "GD库没有安装";
} else {
    echo "GD库已经安装";
}
?>

如果没有安装GD库,可以通过以下命令来安装:

sudo apt-get install php-gd

接下来,我们可以通过以下代码来实现图片水印操作:

<?php
// 定义图片路径
$src = 'original.jpg';
$watermark = 'watermark.png';

// 创建图片资源
$srcImg = imagecreatefromjpeg($src);
$watermarkImg = imagecreatefrompng($watermark);

// 获取图片的宽度和高度
$srcWidth = imagesx($srcImg);
$srcHeight = imagesy($srcImg);
$watermarkWidth = imagesx($watermarkImg);
$watermarkHeight = imagesy($watermarkImg);

// 设置水印的位置
$destX = $srcWidth - $watermarkWidth - 10;
$destY = $srcHeight - $watermarkHeight - 10;

// 将水印图片合并到原始图片上
imagecopy($srcImg, $watermarkImg, $destX, $destY, 0, 0, $watermarkWidth, $watermarkHeight);

// 输出图片
header('Content-Type: image/jpeg');
imagejpeg($srcImg);

// 释放资源
imagedestroy($srcImg);
imagedestroy($watermarkImg);
?>

上述代码中,首先定义了原始图片和水印图片的路径,然后通过imagecreatefromjpegimagecreatefrompng函数创建了原始图片和水印图片的资源。接着,通过imagesximagesy函数获取了图片的宽度和高度。然后,通过imagecopy函数将水印图片合并到原始图片上。最后,通过header函数设置输出的图片类型为jpeg,并使用imagejpeg函数输出图片。最后,使用imagedestroy函数释放资源。

需要注意的是,上述代码中的路径为相对路径,如果图片不在当前目录下,需要修改路径。

总结来说,通过PHP的GD库函数库,可以很方便地实现图片水印操作。除了在图片上加文字或者图片之外,GD库还支持调整图片大小、旋转图片等操作,使得图片处理变得更加灵活和方便。