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

PHP函数实现图片生成与水印功能

发布时间:2023-06-23 02:07:37

在Web应用开发中,图片生成和水印功能是非常常见的需求。例如,需要在网站上动态生成图像,或者需要给某些图片打上公司的Logo水印等。本文将介绍如何使用PHP函数来实现这些功能。

1. 图片生成

1.1 使用imagecreate()函数创建画布

要生成一张图片,首先需要用PHP函数创建一个画布。PHP提供了imagecreate()函数来创建一个新的画布。这个函数需要两个参数:宽度和高度。代码如下:

$width = 500;
$height = 300;
$image = imagecreate($width, $height);

这样就创建了一张宽为500,高为300的空白画布。

1.2 给画布填充颜色

接下来需要给画布填充颜色。使用imagecolorallocate()函数来给画布填充颜色。这个函数需要四个参数:画布、红色值、绿色值和蓝色值。代码如下:

$red = 255;
$green = 255;
$blue = 255;
$background_color = imagecolorallocate($image, $red, $green, $blue);

这样就给画布填充了一个白色的背景色。

1.3 添加文本

现在可以向画布上添加一些文本。使用imagettftext()函数来向画布上添加文本。这个函数需要七个参数:画布、字体大小、角度、左上角的x坐标、左上角的y坐标、文本颜色和字体文件。代码如下:

$text = "Hello, world!";
$font_size = 25;
$angle = 0;
$x = 50;
$y = 150;
$text_color = imagecolorallocate($image, 0, 0, 0);
$font_file = "/path/to/font.ttf";
imagettftext($image, $font_size, $angle, $x, $y, $text_color, $font_file, $text);

这样就向画布上添加了一段文本。

1.4 保存图片

添加完文本后,就可以把画布保存成一张图片文件了。使用imagepng()函数将画布保存成PNG格式的图片文件。代码如下:

$image_file = "/path/to/image.png";
imagepng($image, $image_file);

这样就生成了一张PNG格式的图片文件。

2. 图片水印

2.1 打开图片文件

要给一张图片打上水印,首先需要打开这张图片文件。使用imagecreatefromxxx()函数来打开图片文件,其中xxx为图片文件的格式。例如,使用imagecreatefromjpeg()函数来打开JPG格式的图片文件。代码如下:

$image_file = "/path/to/image.jpg";
$image = imagecreatefromjpeg($image_file);

这样就打开了一张JPG格式的图片文件。

2.2 添加水印

打开图片文件后,就可以在图片上添加水印了。使用imagecopy()函数来将水印复制到图片上。这个函数需要五个参数:目标图片、水印图片、水印在目标图片中的x坐标、水印在目标图片中的y坐标和水印的宽度。代码如下:

$watermark_file = "/path/to/watermark.png";
$watermark = imagecreatefrompng($watermark_file);
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$dest_x = 100;
$dest_y = 200;
imagecopy($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height);

这样就在原图上添加了一个水印。

2.3 保存图片

添加完水印后,就可以把图片保存起来了。使用imagejpeg()函数将图片保存成JPEG格式的文件。代码如下:

$output_file = "/path/to/output.jpg";
imagejpeg($image, $output_file);

这样就生成了一张带有水印的JPEG格式的图片文件。

综上所述,使用PHP函数实现图片生成与水印功能非常简单。只需创建画布、填充颜色、添加文本,或者打开图片文件、添加水印、保存图片文件即可。