
- PHP ImageMagick 教程
- PHP ImageMagick - 首頁
- PHP ImageMagick - 簡介
- 背景顏色
- 影像倒影
- 影像裁剪
- 影像邊框
- 影像縮放
- 影像合成
- 對比度和亮度
- 增強和均衡
- 銳化和模糊
- 影像平鋪
- 影像閾值
- 修改顏色
- 不同的效果
- 保護影像
- 素描模擬
- 編輯外觀
- 旋轉和滾動
- 拼接和擴充套件
- 其他函式
- PHP ImageMagick 有用資源
- PHP ImageMagick - 快速指南
- PHP ImageMagick - 資源
- PHP ImageMagick - 討論
PHP ImageMagick - 其他函式
應用函式
我們在“預定義常量”章節中瞭解了 ImageMagick 中的預定義常量。為了應用這些函式常量,ImageMagick 提供了一個內建函式`functionImage()`,它包含三個函式:undefined、polynomial 和 sinusoid。您可以使用此函式將這些常量應用於影像。
語法
public Imagick::functionImage(int $function, array $arguments, int $channel = Imagick::CHANNEL_DEFAULT): bool
此函式主要包含兩個引數:函式和引數。
函式指的是函式常量列表(sinusoid 或 polynomial)。
引數指定以陣列格式傳遞給函式的引數。
要應用此函式,我們需要使用‘newPseudoImage()’函式建立一個新影像,然後透過指定引數在此影像上應用此函式。它不接受任何輸入,但在應用函式後會產生輸出。
示例
在此示例中,您可以看到 ImageMagick 中‘functionImage()’函式的實現。此程式碼包括建立新的 Imagick 物件並將影像作為輸入。
使用‘newPseudoImage()’函式建立具有所需尺寸的新影像,然後應用該函式。要應用的函式作為‘functionImage()’函式中的一個引數指定。使用‘writeImage()’顯示獲得的輸出影像。
<?php $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image5.jpeg"); $image->newPseudoImage(500, 400, 'gradient:white-brown'); $image->functionImage(Imagick::FUNCTION_SINUSOID, array(19, 33)); $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/functionImage.png"); ?>
輸出

影像註釋
為了識別整個影像或影像的含義,必須對影像進行註釋。影像註釋是以文字形式新增影像的解釋的一種方式。為此,ImageMagick 庫中提供了一個函式‘annotateImage()’。
語法
public Imagick::annotateImage(ImagickDraw $draw_settings,float $x, float $y, float $angle, string $text): bool
此函式有 5 個引數:繪圖設定、x、y、角度和文字。’draw_settings’ 是一個 ImageMagick 物件,其中包含繪製文字的設定。
x 是文字左側的水平偏移量(以畫素為單位)。
y 是文字基線的垂直偏移量(以畫素為單位)。
angle 指定必須寫入文字的角度。
text 是要繪製的字串。
此函式將影像作為輸入,並將帶有某些註釋文字的影像作為輸出。
示例
在下面的示例中,我們建立一個新的 Imagick 物件 ($img) 並將影像傳遞給它。然後,建立一個新的 ImagickDraw 物件 ($draw),並在此 draw 物件上設定字型大小。
最後,在您建立的 Imagick 物件 ('$img') 上使用'annotateImage()',傳入您的 draw 物件、x 座標、y 座標、角度和文字作為引數。獲得的輸出形式為 'annotateImage.png'。
<?php $draw=new ImagickDraw(); $img=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.jpeg"); $draw->setFontSize(30); $img->annotateImage($draw, 525, 820, 0, 'HAPPY DIWALI'); $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/annotateImage.png"); ?>
假設以下是程式中的輸入影像 (image.jpeg) &minnus;

輸出

影像組合
附加一組影像的過程是將所有影像組合在一起,以便每個影像都附加到另一個影像的末尾,依此類推。為此,ImageMagick 提供了一個內建函式‘appendImages()’,您可以在其中將一組影像附加到更大的影像中。
語法
public Imagick::appendImages(bool $stack): Imagick
此函式接受一個布林引數“stack”。此值用於確定是垂直堆疊影像還是水平堆疊影像。“stack”的預設值為 false。這意味著影像從左到右堆疊。如果“stack”值為 true,則影像從上到下堆疊。
示例
以下示例在 PHP 中實現了‘appendImages()’函式。在此示例中,建立了 5 個具有相同尺寸但顏色不同的新影像。然後,使用‘resetIterator()’重置畫素迭代器,然後使用‘appendImages()’函式附加所有建立的影像,並獲得輸出。
<?php $image=new Imagick(); $image->newImage(100, 100, "black"); $image->newImage(100, 100, "white"); $image->newImage(100, 100, "black"); $image->newImage(100, 100, "white"); $image->newImage(100, 100, "black"); $image->resetIterator(); $combined=$image->appendImages(false); $combined->writeImage($_SERVER['DOCUMENT_ROOT']."/test/appendImages.png"); ?>
輸出
