PHP ImageMagick - 各种效果



创建3D效果

具有高度、宽度和深度的图像称为三维 (3D) 图像。3D 图像为用户提供了对象的逼真复制。

为了直接在服务器上创建此效果,ImageMagick 提供了一个名为“shadeImage()”的内置函数。这非常方便,它能够轻松地将标准 2D 图像转换为高质量的 3D 渲染。

语法

public Imagick::shadeImage(bool $gray, float $azimuth, float $elevation): bool

此函数采用 3 个参数:灰度、方位角和仰角。

  • **灰度** 是一个布尔值,用于设置每个像素的强度阴影。

  • **方位角** 和 **仰角** 是浮点值,分别定义光源相对于 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) −

Creating 3D Effect

输出

Creating 3D Effect

创建太阳化效果

当摄影胶片严重曝光过度时看到的这种效果称为太阳化效果。要在 PHP 中创建该效果,ImageMagick 提供了一个名为 **‘solarizeImage()’** 的内置函数。

此效果会生成色调反转的图像,其中高光变暗,反之亦然。

语法

public Imagick::solarizeImage(int $threshold): bool

此函数采用“阈值”作为参数。它是一个整数,用于测量太阳化效果的程度。

示例

此示例显示了 **‘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) −

Creating Solarizing Effect

输出

Creating Solarizing Effect

创建波浪滤镜效果

ImageMagick 提供了一个名为 **‘waveImage()’** 的内置函数,它有助于模拟图像上的波浪滤镜。它将图像作为输入,输出的图像是带有波浪滤镜的图像。

语法

public Imagick::waveImage(float $amplitude, float $length): bool

此函数有两个参数:幅度和长度。

  • 幅度指定波的幅度。

  • 长度指定波的长度。

示例

这是一个示例,它显示了 **‘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) −

Creating Wave Filter Effect

输出

Creating Wave Filter Effect

创建漩涡效果

在本节中,您将学习如何旋转图像。通常,旋转意味着以扭曲或圆周运动快速移动。包含此类效果的图像称为旋转图像。手动创建旋转图像很困难。但是,为了简化此过程,ImageMagick 提供了一个名为 **‘swirlImage()’** 的内置函数,它可以围绕图像中心旋转像素。

语法

Imagick::swirlImage(float $degrees): bool

此函数采用单个参数:角度。‘角度’ 是一个浮点值,表示每个像素移动的弧度的扫描范围。通过这种方式,当角度从 1 移动到 360 时,您可以获得更显着的效果。

示例

在下面的示例中,您首先创建一个新的 imagick 对象并输入图像。然后,通过指定角度 (degrees=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) −

Creating Swirl Effect

输出

Creating Swirl Effect
广告
© . All rights reserved.