函数名:imageaffine()
适用版本:PHP 7.2.0 及以上版本
用法:imageaffine() 函数用于对图像进行仿射变换。仿射变换是一种线性变换,可以通过平移、缩放、旋转、剪切等操作对图像进行变换。
语法:bool imageaffine(resource $image, array $affine, array $clip = null)
参数:
- $image:原始图像资源,使用 imagecreatefromjpeg()、imagecreatefrompng() 等函数创建;
- $affine:一个包含仿射变换系数的数组,包括 6 个元素,分别代表水平缩放、水平倾斜、水平平移、垂直倾斜、垂直缩放和垂直平移;
- $clip:一个可选的数组,用于指定裁剪区域的边界,包括左上角和右下角的坐标。
返回值:如果成功则返回 true,否则返回 false。
示例:
// 创建一个图像资源
$image = imagecreatefromjpeg('original.jpg');
// 定义仿射变换系数
$affine = array(
1, 0.2, 50, // 水平缩放、水平倾斜、水平平移
-0.2, 1, 100 // 垂直倾斜、垂直缩放、垂直平移
);
// 对图像进行仿射变换
if (imageaffine($image, $affine)) {
// 保存变换后的图像
imagejpeg($image, 'transformed.jpg');
imagedestroy($image);
echo "图像变换成功!";
} else {
echo "图像变换失败!";
}
注意事项:
- 该函数需要 GD 扩展的支持,因此需要在 PHP 编译时启用 GD 扩展;
- 仿射变换的系数可以根据需求进行调整,以达到不同的变换效果;
- 裁剪区域的边界参数可选,如果不指定则不进行裁剪操作。