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”函数并指定所有参数(黑点=30,白点=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):

Vignette Image

输出

Vignette Image

圆角

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

要圆角图像,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”是浮点值,它们控制圆角的程度。“stroke_width”、“displace”和“size-correction”也是浮点值,用于微调圆角过程。

示例

通过此示例,您将能够清楚地理解此函数的使用。首先通过创建新的 Imagick 对象将图像作为输入。使用指定的参数(x_rounding=20,y_rounding=20,stroke-width=5,displace=5,size-correction=-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):

Rounding Corners

输出

Rounding Corners

拍立得图像

在本章中,您将学习模拟拍立得照片。拍立得照片是由拍立得相机拍摄的照片。它是一种拍摄照片并在几秒钟后打印的照片的相机。它是一种即时打印类型,并具有特殊类型的胶片支架。为了模拟拍立得图像,ImageMagick 提供了一个内置函数“polaroidImage()”

语法

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

此函数接收 2 个参数:属性和角度。“属性”指定拍立得属性,“角度”以浮点值指定拍立得角度。

示例

在此示例中,您创建了一个新的 imagick 对象并以图像作为输入。然后,通过指定参数,在该图像上应用“polaroidImage()”函数。拍立得图像作为输出获得。

<?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):

Polaroid Image

输出

Polaroid Image

创建平行四边形

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

语法

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

此函数接收 3 个参数:背景、x_shear 和 y_shear。“背景”指定背景颜色,“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):

Creation Parallelogram

输出

Creation Parallelogram
广告

© . All rights reserved.