PHP ImageMagick - 草图模拟


在本章中,您将学习使用 Imagemagick 提供的一些内置函数来模拟不同类型的草图。

模拟木炭画

ImageMagick 提供了一个名为“charcoalImage()”的方法,它可以生成输入图像的炭笔画。

句法

public Imagick::charcoalImage(float $radius, float $sigma): bool

该函数有 2 个参数:半径和西格玛。

  • Radius 是一个浮点值,指定高斯的半径(以像素为单位),不包括中心像素。

  • Sigma 也是一个浮点值,指定高斯的标准差(以像素为单位)。

例子

这是一个显示“charcoalImage()”函数实现的示例。首先,创建一个新的 imagick 对象,并将图像作为输入。然后,“charcoalImage()”函数应用于该图像。所需的输出以“charcoalImage.png”的形式获得

<?php
   $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.png");
   $image->charcoalImage(2, 2);
   $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/charcoalImage.png");
?>

假设以下是程序中的输入图像(image.png) -

模拟炭笔画

输出

模拟炭笔画

模拟铅笔草图

Imagemagick 提供了一个名为“sketchImage()”的内置函数,它可以生成输入图像的铅笔草图。

句法

public Imagick::sketchImage(float $radius, float $sigma, float $angle): bool

该函数由 3 个参数组成:半径、西格玛和角度。这些是浮点值。“Radius”指定高斯的半径(以像素为单位),“sigma”指定高斯的标准偏差(以像素为单位),“angle”指定必须应用效果的角度并指定模糊运动的角度。

例子

这是一个显示“sketchImage()”函数实现的示例。首先,创建一个新的 imagick 对象,并将图像作为输入。然后,“sketchImage()”函数应用于该图像。所需的输出以“sketchImage.png”的形式获得。

<?php
   $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.png");
   $image->sketchImage(11, 11, 30);
   $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/sketchImage.png");
?>

假设以下是程序中的输入图像(image.png) -

模拟铅笔素描

输出

模拟铅笔素描

模拟油画

油画是使用油性颜料制作的绘画类型。在不实际使用油画的情况下,可以使用PHP 中 Imagemagick 的内置函数“oilPaintImage()”来模拟这幅油画。

句法

public Imagick::oilPaintImage(float $radius): bool

该函数仅包含一个参数,即“半径”,它是一个浮点值。它指定圆形邻域的半径。该函数将图像作为输入,并应用模拟油画的特效滤镜并将其作为输出。

例子

这是一个显示“oilPaintImage()”函数实现的示例。首先,创建一个新的 imagick 对象,并将图像作为输入。然后,“oilPaintImage()”函数应用于该图像。所需的输出以“oilPaintImage.png”的形式获得。

<?php
   $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.png");
   $image->oilPaintImage(2);
   $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/oilPaintImage.png");
   ?>

假设以下是程序中的输入图像(image.png) -

模拟油画

输出

模拟油画