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

PHP函数之图片处理函数

发布时间:2023-06-14 17:40:31

PHP 是目前 Web 开发领域非常流行的一门编程语言,它具有代码简单易懂、语法灵活、功能强大的特点。在网络开发中,或多或少都会有图片的处理和应用需求,如处理图片缩略、裁剪、水印等。今天,我们将介绍一下 PHP 中常用的图片处理函数,让大家能够更加轻松地实现图片的处理。

1. 读取图片信息

在处理图片时,首先需要将图片读入到 PHP 中进行操作。PHP 中用 getimagesize() 函数可以读取图片的基本信息,包括图像类型、大小、宽高等。该函数的返回值为一个数组,包括图片宽度、高度、图片类型等信息。

例如,读取一个名为 example.jpg 的图片信息:

$info = getimagesize('example.jpg');
echo '宽度:'.$info[0].',高度:'.$info[1].',类型:'.$info[2];

2. 创建图片资源

将图片读入 PHP 后,需要将其创建为一个可操作的资源对象。PHP 中用 imagecreatefromXXX() 函数来实现根据不同的图片类型创建相应的资源对象。其中 XXX 表示不同的图片类型,具体如下:

* GIF:imagecreatefromgif()

* JPEG/JPG:imagecreatefromjpeg()

* PNG:imagecreatefrompng()

* BMP:imagecreatefrombmp()

* WebP:imagecreatefromwebp()

* ... 其他格式

例如,创建一个名为 example.jpg 的图片资源:

$im = imagecreatefromjpeg('example.jpg');

3. 输出图片

在 PHP 中,用 imageXXX() 函数将图片输出到浏览器或者保存到本地磁盘上。其中 XXX 表示将图片输出的方式。具体如下:

* GIF:imagegif()

* JPEG/JPG:imagejpeg()

* PNG:imagepng()

* BMP:imagebmp()

* WebP:imagewebp()

* ... 其他格式

例如,将一个名为 example.jpg 的图片输出到浏览器:

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

4. 处理图片

在读入图片资源后,我们可以对图片进行各种处理,例如缩小、放大、剪裁、旋转、添加边框等等。

4.1 缩放图片

缩放图片是一种最常见的图片处理方式,其主要作用是压缩图片大小并保持图片比例不变。在 PHP 中,imagescale() 函数可以缩放图片,其用法如下:

$im = imagecreatefromjpeg('example.jpg');
$im = imagescale($im, 200, 100); // 缩略宽为 200,高为 100

4.2 裁剪图片

裁剪图片也是常见的图片处理方式,其主要作用是调整图片大小、剪切图片的一部分以及保持图片比例不变。在 PHP 中,imagecrop() 函数可以裁剪图片,其用法如下:

$im = imagecreatefromjpeg('example.jpg');
$im = imagecrop($im, ['x' => 50, 'y' => 50, 'width' => 100, 'height' => 100]); // 从 (x, y) 裁剪宽为 100 高为 100 的区域

4.3 旋转图片

旋转图片也是常见的图片处理方式,其主要作用是调整图片的方向,适当旋转图片可以让图片更好地展示。在 PHP 中,imagerotate() 函数可以旋转图片,其用法如下:

$im = imagecreatefromjpeg('example.jpg');
$im = imagerotate($im, 90, 0); // 旋转 90 度

4.4 添加水印

添加水印是一种用于保护版权的图片处理方式,其主要作用是在图片上添加一些文字或者图片信息。在 PHP 中,imagestring() 函数可以添加文字水印,imagecopy() 函数可以添加图片水印。具体用法如下:

$im = imagecreatefromjpeg('example.jpg');

// 添加文字水印
$text_color = imagecolorallocate($im, 0, 0, 0);
imagestring($im, 5, 10, imagesy($im) - 20, 'www.example.com', $text_color);

// 添加图片水印
$watermark = imagecreatefrompng('watermark.png');
imagecopy($im, $watermark, imagesx($im) - imagesx($watermark), imagesy($im) - imagesy($watermark), 0, 0, imagesx($watermark), imagesy($watermark));

5. 释放资源

在处理完图片之后,应该及时地将占用的资源释放,避免浪费服务器资源和内存。在 PHP 中,用 imagedestroy() 函数可以将创建的资源对象释放,其用法如下:

imagedestroy($im);

上述就是 PHP 中常用的图片处理函数的介绍,经过这些函数的处理,我们可以轻松地实现图片的缩放、裁剪、旋转、水印等效果。这些函数的组合使用,可以高效地解决各种图片处理需求。