PHP Imagick rotateImage() 函数
Imagick::rotateImage() 方法在 PHP 中用于将图像按照指定角度旋转,并使用指定颜色填充空白区域。
语法
bool Imagick::rotateImage( background,degrees )
以下是此函数接受的参数,如上所述并如下所述:
$background: 此选项用于更改图像的背景颜色。此数据类型可以是字符串或浮点型。
$degrees: 使用此参数设置图像的旋转角度。旋转角度按顺时针方向读取。
返回值
此函数的返回值是一个布尔值,取决于函数的成功和失败。如果输入图像的旋转成功,则此函数的返回类型将为真值。另一方面,如果输入图像的旋转失败,则此函数的返回类型将更改为假值。
代码
<?php
function rotateImage(imagePath,angle, color) {imagick = new \Imagick(realpath(imagePath));imagick->rotateimage(color,angle);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}
?>
输出:
以上编写的代码将导致输入的图像通过图像路径变量进行旋转,该路径变量将具有要进行旋转的图像的绝对路径,颜色和角度是我们传递给旋转图像函数的两个附加参数,实际上将执行旋转功能。
让我们看一些关于在PHP中使用Imagick rotateImage()函数的其他实际示例。
代码
<?php
function calculateCounterClockwise(value)
{
if (value == 0 || value == 180) {
returnvalue;
}
if (value<0 ||value > 360) {
value = 90;
}total_degree = 360;
output = intval(total_degree-value);
returnoutput;
}// calculateCounterClockwise
echo '1 = '.calculateCounterClockwise(1).'<br>';
echo '90 = '.calculateCounterClockwise(90).'<br>';
echo '270 = '.calculateCounterClockwise(270).'<br>';
echo '359 = '.calculateCounterClockwise(359).'<br>';
echo '360 = '.calculateCounterClockwise(360).'<br>';
?>
输出:
1 = 359
90 = 270
270 = 90
359 = 1
360 = 0
有些变换,比如Imagick::rotateImage(),可以改变“图像页面”,即你正在处理的图片上的工作区域。之后,对于未来的改变要小心,因为图片页面会根据新的图像尺寸而有所不同。例如,如果你在旋转之后使用Imagic::cropImage(),你必须正确设置图像页面,否则你的裁剪将基于错误的坐标(根据旋转角度,结果图像大小可能会有所不同)。
代码
<?php
Image = new Imagick(sourceImagePath);
transparent = '#00000000';Image->rotateImage(new \ImagickPixel(), 45); // This makes resulting image bigger
// Set page to be of the full size of new image, starting at top left corner (0, 0)
Image->setImagePage(Image->getImageWidth(), Image->getImageHeight(), 0, 0);Image->cropImage(crop_w,crop_h, crop_x,crop_y);
?>
输出:
在PHP中使用rotate Image功能进行图像旋转后,用户可能会面临一些问题,其中之一就是在执行旋转操作后使用裁剪图像。用户在执行裁剪和其他类似操作时应更加谨慎。上述代码展示了一个场景,即在成功旋转输入图像后执行裁剪操作,此处的输入图像以45度的角度进行了旋转,该角度作为参数传递给rotate Image函数。
因此,在本文中,我们通过PHP的rotate Image函数介绍了如何轻松地将图像旋转到我们期望的角度,只需将旋转角度值作为参数传递给rotate Image函数。