PHP ImageMagick - 素描模擬



本章節,你將學習如何使用 ImageMagick 提供的一些內建函式來模擬不同型別的素描。

模擬炭筆畫

ImageMagick 提供了一個名為 `charcoalImage()` 的方法,它可以生成輸入影像的炭筆畫效果。

語法

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

此函式接受兩個引數:半徑和 sigma。

  • 半徑是一個浮點值,指定高斯函式的半徑(以畫素為單位),不包括中心畫素。

  • 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) −

Simulating Charcoal Drawing

輸出

Simulating Charcoal Drawing

模擬鉛筆素描

ImageMagick 提供了一個名為 `sketchImage()` 的內建函式,它可以生成輸入影像的鉛筆素描效果。

語法

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

此函式包含 3 個引數:半徑、sigma 和角度。這些都是浮點值。“半徑”指定高斯函式的半徑(以畫素為單位),“sigma”指定高斯函式的標準差(以畫素為單位),“角度”指定應用效果的角度,並指定模糊運動的角度。

示例

這是一個示例,展示了 `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) −

Simulating
Pencil Sketch

輸出

Simulating
Pencil Sketch

模擬油畫

油畫是用油性顏料製作的一種繪畫型別。無需使用真實的油畫顏料,可以使用 ImageMagick 在 PHP 中的內建函式 `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) −

Simulating Oil Painting

輸出

Simulating Oil Painting
廣告
© . All rights reserved.