📜  PHP | imageaffine()函数(1)

📅  最后修改于: 2023-12-03 15:18:23.741000             🧑  作者: Mango

PHP | imageaffine()函数

1. 简介

imageaffine()函数用于对图像进行仿射变换操作,即对图像进行缩放、旋转、剪切、扭曲等操作。该函数支持各种类型的图像,包括 GIF、JPEG、PNG、WebP 等格式的图像。

2. 语法
bool imageaffine ( resource $image , array $affine [, array $clip ] )
参数
  • $image:要进行仿射变换操作的图像资源;
  • $affine:一个包含 6 个数值的数组,用于表示仿射变换矩阵的 6 个系数;
  • $clip(可选):一个包含 4 个数值的数组,用于表示裁剪窗口的 4 个坐标。
返回值

如果函数执行成功,则返回 true,否则返回 false

3. 示例
3.1 对图像进行缩放操作
// 加载原始图像
$image = imagecreatefromjpeg('original.jpg');

// 设置变换矩阵
$affine = array(
    0.5, 0, 0,
    0, 0.5, 0
);

// 进行仿射变换操作
imageaffine($image, $affine);

// 输出缩放后的图像
header('Content-type: image/jpeg');
imagejpeg($image);

注意:上述示例中变换矩阵中的 0.5 表示将图像的尺寸缩小 50%。

3.2 对图像进行旋转操作
// 加载原始图像
$image = imagecreatefromjpeg('original.jpg');

// 设置变换矩阵
$degrees = 45;
$affine = array(
    cos(deg2rad($degrees)), sin(deg2rad($degrees)), 0,
    -sin(deg2rad($degrees)), cos(deg2rad($degrees)), 0
);

// 进行仿射变换操作
imageaffine($image, $affine);

// 输出旋转后的图像
header('Content-type: image/jpeg');
imagejpeg($image);

注意:上述示例中变换矩阵中的 deg2rad() 函数用于进行角度转弧度的计算。变换矩阵中的余弦值表示旋转后的图像宽度,正弦值表示旋转后的图像高度。

3.3 对图像进行扭曲操作
// 加载原始图像
$image = imagecreatefromjpeg('original.jpg');

// 设置变换矩阵
$affine = array(
    1, 0.5, 0,
    0.2, 0.8, 0
);

// 进行仿射变换操作
imageaffine($image, $affine);

// 输出扭曲后的图像
header('Content-type: image/jpeg');
imagejpeg($image);

注意:上述示例中变换矩阵中的数值表示对图像进行的扭曲比例。例如,数值 0.5 表示将图像的宽度扭曲增加 50%。