PHP ImageMagick - 不同的效果
创建 3D 效果
看起来具有高度、宽度和深度的图片称为 3 维 (3D) 图片。 3D 图像为用户提供了对象的真实复制品。
为了直接在服务器上创建此效果,Imagemagick 提供了一个名为"shadeImage()"的内置函数。 这很方便,能够轻松地将标准 2D 图像转换为高质量的 3D 渲染。
语法
public Imagick::shadeImage(bool $gray, float $azimuth, float $elevation): bool
该函数需要 3 个参数:灰度、方位角和仰角。
gray灰度是一个布尔值,用于对每个像素的强度进行着色。
azimuth方位角和elevation仰角是浮点值,分别定义远离x轴和z轴上方的光源方向。
为了创造3D效果,主要考虑光量和光的方向。 该函数将图像作为输入,并生成具有 3D 效果的图像作为输出。
示例
此示例显示了 'shadeImage()' 函数的使用。在此,创建了一个 Imagick 对象并传递了一个图像作为输入。 然后调用 'shadeImage()' 函数,并提供灰度值、方位角值和高程作为参数。
<?php $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.png"); $image->shadeImage(true, 50, 30); $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/shadeImage.png"); ?>
假设以下是程序中的输入图像(image.png)−
输出
创建日晒效果
当摄影胶片过度曝光时看到的效果称为过曝效果。 为了在 PHP 中创建这种效果,Imagemagick 提供了一个内置函数 'solarizeImage()'。
此效果会产生色调反转的图像,其中高光变暗,反之亦然。
语法
public Imagick::solarizeImage(int $threshold): bool
该函数采用"threshold"作为参数。 它是一个整数值,用于衡量日晒效应的程度。
示例
此示例显示'solarizeImage()'函数的实现。 创建一个新的 imagick 对象并将图像作为输入。 现在,应用
'solarizeImage()'
函数并以阈值作为参数,获得的输出图像的形式为'solarizeImage.png'。<?php $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/imagee.png"); $image->solarizeImage(0.3); $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/solarizeImage.png"); ?>
假设以下是程序中的输入图像(image.png)−
输出
创建波形滤镜效果
Imagemagick 提供了一个名为'waveImage()' 的内置函数,它有助于在图像上模拟滤波器。 它以图像作为输入,获得的输出是带有滤波器的图像。
语法
public Imagick::waveImage(float $amplitude, float $length): bool
该函数有两个参数:幅度和长度。
amplitude 指定波的振幅。
length 指定波的长度。
示例
这是一个示例,展示了'waveImage()'函数的实现。 首先,创建一个新的 imagick 对象,并将图像作为输入。 然后,'waveImage()' 函数应用于该图像。 所需的输出以"waveImage.png"的形式获得。
<?php $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.png"); $image->waveImage(2, 4); $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/waveImage.png"); ?>
假设以下是程序中的输入图像(image.png)−
输出
创建漩涡效果
在本章中,您将学习旋转图像。 一般来说,旋转是指以扭转或圆周运动快速移动。 包含这种类型效果的图像称为漩涡图像。 手动创建漩涡图像很困难。 但是,为了使这更容易,Imagemagick 提供了一个内置函数'swirlImage()',它使像素绕图像中心旋转。
语法
Imagick::swirlImage(float $degrees): bool
该函数接受一个参数:degrees。 "degrees"是一个浮点值,表示每个像素移动的弧度。 这样,当度数从 1 移动到 360 时,您会获得更引人注目的效果。
示例
在下面的示例中,您首先创建一个新的 imagick 对象并输入图像。 然后,通过指定度数(度数=200)来应用'swirlImage()'函数。 最后,获得该旋转图像作为输出。
<?php $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/imagee.png"); $image->swirlImage(200); $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/swirlImage.png"); ?>
假设以下是程序中的输入图像(image.png)−