📅  最后修改于: 2023-12-03 15:18:23.741000             🧑  作者: Mango
imageaffine()
函数用于对图像进行仿射变换操作,即对图像进行缩放、旋转、剪切、扭曲等操作。该函数支持各种类型的图像,包括 GIF、JPEG、PNG、WebP 等格式的图像。
bool imageaffine ( resource $image , array $affine [, array $clip ] )
$image
:要进行仿射变换操作的图像资源;$affine
:一个包含 6 个数值的数组,用于表示仿射变换矩阵的 6 个系数;$clip
(可选):一个包含 4 个数值的数组,用于表示裁剪窗口的 4 个坐标。如果函数执行成功,则返回 true
,否则返回 false
。
// 加载原始图像
$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%。
// 加载原始图像
$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()
函数用于进行角度转弧度的计算。变换矩阵中的余弦值表示旋转后的图像宽度,正弦值表示旋转后的图像高度。
// 加载原始图像
$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%。