PHP ImageMagick - 编辑外观

在本章中,您将探索如何使用 Imagemagick 的内置功能来编辑图像。 您将学习如何在图像边缘创建褪色和圆形外观,将其包裹成平行四边形,甚至模拟宝丽来效果。

晕影图像

"小插图"一词是指一张小照片或图像,其背景外观已褪色,并且没有明确的边框。 具有这种效果可以突出图像的某些方面。 因此,为了获取此滤镜中的图像,Imagemagick 提供了一个内置函数 'vignetteImage()'。 该函数将图像作为输入,应用晕影滤镜,获得的图像的边框已模糊。

语法

public Imagick::vignetteImage(float $blackPoint, float $whitePoint, int $x, int $y): bool

该函数有 4 个参数:blackPoint、whitePoint、x 和 y。 "blackPoint"和"whitePoint"是浮点值。 "x"是一个整数值,指定椭圆的"x"偏移量,"y"是一个整数值,指定椭圆的"y"偏移量。

示例

为了更好地理解'vignetteImage()'函数,请查看下面的示例。 首先创建一个 imagick 对象,并将图像作为输入。 然后,应用"vignetteImage"函数并指定所有参数(blackpoint=30、whitepoint=10、x=40、y=20)。 最后,使用'writeImage()'函数获得输出。

<?php
   $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.png");
   $image->vignetteImage(30, 10, 40, 20);
   $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/vignetteImage.png");
?>

假设以下是程序中的输入图像(image.png)−

小插图图像

输出

小插图图像

圆角

人们普遍认为圆角更舒服。 也就是说,它们分别适合头部和眼睛的自然运动。 圆化图像角还可以使图像看起来更有条理、更整洁。

为了使图像的角变圆,Imagemagick 提供了一个内置函数'roundCorners()'。 该函数将图像作为输入,将角变圆,然后生成该图像作为输出。

语法

public Imagick::roundCorners(
   float $x_rounding,
   float $y_rounding,
   float $stroke_width =10,
   float $displace =5,
   float $size_correction =-6
): bool

该函数有 5 个参数:x_rounding、y_rounding、strike_width、displace 和 size_ Correction。 "x_rounding"和"y_rounding"是浮点值,它们控制舍入量。 "strike_width"、"displace"和"size_ Correction"也是浮点值,用于微调舍入过程。

示例

通过这个例子,您将能够清楚地了解该函数的用法。 首先通过创建一个新的 Imagick 对象将图像作为输入。 'roundCorners()' 函数在指定参数的帮助下应用于该图像(x_rounding=20、y_rounding=20、描边宽度=5、位移=5、尺寸校正=-10 )。 然后,使用函数'writeImage()'获取输出图像。

<?php
   $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/imagee.png");
   $image->roundCorners(20, 20, 5, 5, -10);
   $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/roundCornerImage.png");
?>

假设以下是程序中的输入图像(image.png)−

圆角

输出

圆角

宝丽来图像

在本章中,您将学习模拟宝丽来照片。 宝丽来照片是用宝丽来相机拍摄的照片。 它是一种拍照并在几秒钟后打印出来的相机。 它是一种即时打印,具有特殊类型的胶片支架。 为了模拟宝丽来图像,Imagemagick 提供了一个内置函数'poloidImage()'。

语法

public Imagick::polaroidImage(ImagickDraw $properties, float $angle): bool

该函数接受 2 个参数:properties和angle。"properties"指定宝丽来属性,"angle"指定宝丽来角度(以浮点值表示)。

示例

在此示例中,您创建一个新的 imagick 对象并采用图像作为输入。 然后,通过指定参数对该图像应用"poloidImage()"函数。 获得宝丽来图像作为输出。

<?php
   $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/imagee.png");
   $image->polaroidImage(new ImagickDraw(), 30);
   $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/polaroidImage.png");
?>

假设以下是程序中的输入图像(image.png)−

宝丽来图片

输出

宝丽来图片

创建平行四边形

在本节中,您将学习函数'shearImage()'。它是 Imagemagick 提供的内置函数。 其功能是创建一个平行四边形。 此函数将图像作为输入,并在 X 和 Y 轴上剪切图像以创建平行四边形并添加背景颜色。

语法

public Imagick::shearImage(mixed $background, float $x_shear, float $y_shear): bool

该函数接受 3 个参数:background、x_shear 和 y_shear。 "Background"指定背景颜色,"x_shear"指定 X 轴上剪切的度数,"y_shear"指定 Y 轴上剪切的度数。

示例

在下面的示例中,图像被作为输入,并且'shearImage ()'函数应用于该图像。 它接受 3 个参数(背景颜色= rgb (100, 200, 150),x_shear=10 和 y_shear=10)。 使用函数'writeImage()'显示获得的输出。

<?php
   $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.png");
   $image->shearImage('rgb(100, 200, 150)', 10, 10);
   $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/shearImage.png");
?>

假设以下是程序中的输入图像(image.png)−

创建平行四边形

输出

创建平行四边形