PHP ImageMagick - 编辑外观


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

小插图图像

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

句法

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

该函数有 4 个参数:黑点、白点、x 和 y。“黑点”和“白点”是浮点值。“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' 是浮点值,它们控制舍入量。“笔划宽度”、“位移”和“尺寸校正”也是浮点值,用于微调舍入过程。

例子

通过这个例子,您将能够清楚地了解该函数的用法。首先通过创建一个新的 Imagick 对象将图像作为输入。借助指定参数(x_rounding=20、y_rounding=20、描边宽度=5、位移=5、尺寸校正=-10),将“roundCorners()”函数应用于该图像然后,使用函数“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 个参数:属性和角度。“属性”指定宝丽来属性,“角度”指定浮点值中的宝丽来角度。

例子

在此示例中,您创建一个新的 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) -

创建平行四边形

输出

创建平行四边形