PHP ImageMagick - 草图模拟

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

模拟炭笔画

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

语法

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

该函数有 2 个参数: radius 和 sigma。

  • 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。 这些是浮点值。 "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

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

示例

这是一个示例,展示了'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)−

模拟油画

输出

模拟油画