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)−