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

PHP图像处理函数:调整图像大小、裁剪图像和添加水印

发布时间:2023-06-13 13:32:37

PHP图像处理函数是处理图像的函数库,可以用来调整图像大小、裁剪图像和添加水印等。这篇文章将介绍如何使用PHP图像处理函数来处理图像,从而达到上述功能。

调整图像大小

调整图像大小是图像处理中经常用到的操作。可以使用PHP中的imagecopyresampled()函数来实现此目的。该函数可以缩放图像,将一张大图像缩小到合适大小。下面是一个示例程序,展示了如何使用imagecopyresampled()函数来调整图像大小。

<?php

// 定义原图像路径和缩略图像路径

$src = "images/01.jpg";

$dst = "thumbs/01.jpg";

// 获取原图像的宽度和高度

list($src_w, $src_h) = getimagesize($src);

// 定义缩略图像的宽度和高度

$dst_w = 200;

$dst_h = 200;

// 创建原图像资源

$src_img = imagecreatefromjpeg($src);

// 创建缩略图像资源

$dst_img = imagecreatetruecolor($dst_w, $dst_h);

// 缩放原图像,生成缩略图像

imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h);

// 保存缩略图像

imagejpeg($dst_img, $dst, 90);

// 释放资源

imagedestroy($src_img);

imagedestroy($dst_img);

?>

上述程序从images目录中获取原始图像,并将其调整为200x200像素的缩略图像,保存在thumbs目录中。该程序的主要功能是使用imagecopyresampled()函数,该函数的参数意义如下:

imagecopyresampled($dst_img, $src_img, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h)

其中,$dst_img和$src_img分别是目标和源图像资源,$dst_x和$dst_y是目标图像的起始坐标,$src_x和$src_y是源图像的起始坐标,$dst_w和$dst_h是目标图像的宽度和高度,$src_w和$src_h是源图像的宽度和高度。

裁剪图像

裁剪图像是使其适应于特定大小的操作,也可以使用PHP中的imagecopyresampled()函数来执行。下面是一个示例程序,展示如何使用imagecopyresampled()函数来裁剪图像。

<?php

// 定义原图像路径和缩略图像路径

$src = "images/02.jpg";

$dst = "thumbs/02.jpg";

// 定义缩略图像的宽度和高度

$dst_w = 200;

$dst_h = 200;

// 获取原图像的宽度和高度

list($src_w, $src_h) = getimagesize($src);

// 计算缩略图像的起始坐标

$dst_x = 0;

$dst_y = 0;

// 计算源图像的起始坐标

$src_x = ($src_w - $src_h) / 2;

$src_y = 0;

// 创建源图像和缩略图像资源

$src_img = imagecreatefromjpeg($src);

$dst_img = imagecreatetruecolor($dst_w, $dst_h);

// 裁剪原图像,生成缩略图像

imagecopyresampled($dst_img, $src_img, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_h, $src_h);

// 保存缩略图像

imagejpeg($dst_img, $dst, 90);

// 释放资源

imagedestroy($src_img);

imagedestroy($dst_img);

?>

上述程序从images目录中获取原始图像,并将其裁剪为200x200像素的缩略图像,保存在thumbs目录中。该程序的主要功能是使用imagecopyresampled()函数,该函数的参数意义如下:

imagecopyresampled($dst_img, $src_img, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_h, $src_h)

其中,$dst_img和$src_img分别是目标和源图像资源,$dst_x和$dst_y是目标图像的起始坐标,$src_x和$src_y是源图像的起始坐标,$dst_w和$dst_h是目标图像的宽度和高度,$src_h是源图像的高度。

添加水印

添加水印是将某些信息添加到图像中的常见操作,可以使用PHP中的imagestring()函数来执行此操作。下面是一个示例程序,展示如何使用imagestring()函数来添加水印。

<?php

// 定义原图像路径和保存路径

$src = "images/03.jpg";

$dst = "watermark/03.jpg";

// 获取原图像的宽度和高度

list($src_w, $src_h) = getimagesize($src);

// 创建原图像资源

$src_img = imagecreatefromjpeg($src);

// 指定水印文字

$text = "Hello, World!";

// 指定水印文字的颜色和字体

$color = imagecolorallocate($src_img, 255, 255, 255);

$font = "arial.ttf";

// 计算水印文字的宽度和高度

$size = 12;

$bbox = imagettfbbox($size, 0, $font, $text);

$w = $bbox[2] - $bbox[0];

$h = $bbox[3] - $bbox[5];

// 指定水印文字的起始坐标

$x = ($src_w - $w) / 2;

$y = ($src_h - $h) / 2 + $h;

// 添加水印文字到原图像

imagettftext($src_img, $size, 0, $x, $y, $color, $font, $text);

// 保存修改后的图像

imagejpeg($src_img, $dst, 90);

// 释放资源

imagedestroy($src_img);

?>

上述程序从images目录中获取原始图像,并在其中添加了文字水印,保存在watermark目录中。该程序的主要功能是使用imagestring()函数,该函数的参数意义如下:

imagestring($src_img, $font, $x, $y, $text, $color)

其中,$src_img是源图像资源,$font是字体样式,$x和$y是水印文字的起始坐标,$text是水印文字内容,$color是字体颜色。该程序添加了文字水印的方法是使用了imagettftext()函数,该函数的参数同样意义与imagestring()函数相同。

总结

本文介绍了使用PHP图像处理函数来调整图像大小、裁剪图像和添加水印。PHP图像处理函数提供了很多丰富的功能,可以满足不同场景下的需求。建议在开发过程中仔细查阅相关手册,并根据需要选择合适的函数,以便事半功倍。