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

PHP的图像处理函数及用法探究

发布时间:2023-06-21 03:27:15

PHP作为一种流行的服务器端编程语言,具有广泛的应用和用户群。其中,图像处理是PHP中经常使用的功能之一,因此PHP提供了丰富的图像处理函数,以方便开发人员进行图像处理和操作。本文将探究PHP中常用的图像处理函数及其用法。

一、图像创建和输出函数

1、imagecreatetruecolor

函数说明:用于创建一个真彩色图像资源(image)。

函数用法:resource imagecreatetruecolor ( int $width , int $height )

参数说明:$width:创建图像的宽度,必需。$height:创建图像的高度,必需。

示例代码:

<?php

// 创建一个大小为200*100的真彩色图像
$img = imagecreatetruecolor(200, 100);

// 设置背景颜色为白色
$bg_color = imagecolorallocate($img, 255, 255, 255);
imagefill($img, 0, 0, $bg_color);

// 输出图像
header("Content-Type: image/png");
imagepng($img);

// 释放图像资源
imagedestroy($img);
?>

2、imagepng

函数说明:将图像以PNG格式输出到浏览器或保存到文件。

函数用法:bool imagepng ( resource $image [, mixed $to [, int $quality [, int $filters ]]] )

参数说明:$image:要输出或保存的图像资源,必需。$to:要保存或输出图像的文件路径或资源流,可选。$quality:PNG压缩质量,可选,默认值为6,取值范围为0-9。$filters:PNG压缩滤波器,可选,默认值为64,取值范围为0-255。

示例代码:

<?php

// 创建一个大小为200*100的真彩色图像
$img = imagecreatetruecolor(200, 100);

// 设置背景颜色为白色
$bg_color = imagecolorallocate($img, 255, 255, 255);
imagefill($img, 0, 0, $bg_color);

// 保存图像到文件
imagepng($img, 'test.png');

// 输出图像到浏览器
header("Content-Type: image/png");
imagepng($img);

// 释放图像资源
imagedestroy($img);
?>

二、图像处理函数

1、imagecopyresized

函数说明:将一个图像资源复制并缩放到指定大小的图像资源中。

函数用法:bool imagecopyresized ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )

参数说明:$dst_im:目标图像资源,必需。$src_im:源图像资源,必需。$dst_x:目标图像的左上角X坐标,必需。$dst_y:目标图像的左上角Y坐标,必需。$src_x:源图像的左上角X坐标,必需。$src_y:源图像的左上角Y坐标,必需。$dst_w:目标图像的宽度,必需。$dst_h:目标图像的高度,必需。$src_w:源图像要复制的宽度,必需。$src_h:源图像要复制的高度,必需。

示例代码:

<?php

// 创建一个大小为200*100的真彩色图像
$src_img = imagecreatetruecolor(200, 100);

// 设置背景颜色为白色
$bg_color = imagecolorallocate($src_img, 255, 255, 255);
imagefill($src_img, 0, 0, $bg_color);

// 绘制一条黑色的直线
$line_color = imagecolorallocate($src_img, 0, 0, 0);
imageline($src_img, 0, 0, 200, 100, $line_color);

// 缩放图像到100*50
$dst_img = imagecreatetruecolor(100, 50);
imagecopyresized($dst_img, $src_img, 0, 0, 0, 0, 100, 50, 200, 100);

// 输出图像
header("Content-Type: image/png");
imagepng($dst_img);

// 释放图像资源
imagedestroy($src_img);
imagedestroy($dst_img);
?>

2、imagecrop

函数说明:裁剪一个图像资源。

函数用法:resource imagecrop ( resource $src_im , array $rect )

参数说明:$src_im:源图像资源,必需。$rect:裁剪区域,数组,四个元素分别是左上角的X和Y坐标、裁剪宽度和裁剪高度,必需。

示例代码:

<?php

// 加载一张图像
$img = imagecreatefromjpeg('test.jpg');

// 裁剪图像
$cropped_img = imagecrop($img, array('x' => 50, 'y' => 50, 'width' => 100, 'height' => 100));

// 输出图像
header("Content-Type: image/jpeg");
imagejpeg($cropped_img);

// 释放图像资源
imagedestroy($img);
imagedestroy($cropped_img);
?>

三、颜色处理函数

1、imagecolorallocate

函数说明:为一个图像资源分配一个颜色。

函数用法:int imagecolorallocate ( resource $image , int $red , int $green , int $blue )

参数说明:$image:要分配颜色的图像资源,必需。$red:红色分量,0-255,必需。$green:绿色分量,0-255,必需。$blue:蓝色分量,0-255,必需。

示例代码:

<?php

// 创建一个大小为200*100的真彩色图像
$img = imagecreatetruecolor(200, 100);

// 分配一个红色
$red = imagecolorallocate($img, 255, 0, 0);

// 画一个填充了红色的矩形
imagefilledrectangle($img, 0, 0, 200, 100, $red);

// 输出图像
header("Content-Type: image/png");
imagepng($img);

// 释放图像资源
imagedestroy($img);
?>

2、imagefilter

函数说明:对一个图像资源进行滤镜处理。

函数用法:bool imagefilter ( resource $image , int $filtertype [, int $arg1 [, int $arg2 [, int $arg3 [, int $arg4 ]]]] )

参数说明:$image:要进行滤镜处理的图像资源,必需。$filtertype:滤镜类型,必需,取值范围见下表。$arg1-$arg4:参考不同的滤镜类型有不同的意义,可选。

| 滤镜类型常量 | 滤镜类型名称 |

| :----------: | :----------: |

| IMG_FILTER_NEGATE | 颜色取反 |

| IMG_FILTER_GRAYSCALE | 灰度化 |

| IMG_FILTER_BRIGHTNESS | 调整亮度 |

| IMG_FILTER_CONTRAST | 调整对比度 |

| IMG_FILTER_COLORIZE | 调整颜色 |

| IMG_FILTER_GAUSSIAN_BLUR | 高斯模糊 |

| IMG_FILTER_SELECTIVE_BLUR | 选择性模糊 |

| IMG_FILTER_EDGEDETECT | 边缘检测 |

| IMG_FILTER_EMBOSS | 浮雕效果 |

| IMG_FILTER_MEAN_REMOVAL | 去除杂色 |

| IMG_FILTER_PIXELATE | 像素化 |

示例代码:

`

<?php

// 创建一个大小为200*100的真彩色图像

$img = imagecreatetruecolor(200, 100);

// 分配一个红色

$red = imagecolorallocate($img, 255, 0, 0);

// 画一个填充了红色的矩形

imagefilledrectangle($img, 0,