PHP ImageMagick - 編輯外觀



在本章中,您將探索如何使用 ImageMagick 的內建函式來編輯影像。您將學習如何在影像邊緣建立褪色和圓角外觀,將其包裹在平行四邊形形狀中,甚至模擬拍立得效果。

暈影影像

“暈影”一詞指的是一張小照片或影像,其背景具有褪色的外觀,並且沒有明確的邊框。這種效果突出了影像的某些方面。因此,為了獲得此濾鏡中的影像,ImageMagick 提供了一個內建函式“vignetteImage()”。此函式以影像作為輸入,應用暈影濾鏡,並獲得其邊框模糊的影像。

語法

public Imagick::vignetteImage(float $blackPoint, float $whitePoint, int $x, int $y): bool

此函式有 4 個引數:黑點、白點、x 和 y。“黑點”和“白點”是浮點值。“x”是指定橢圓“x”偏移量的整數值,“y”是指定橢圓“y”偏移量的整數值。

示例

為了更好地理解“vignetteImage()”函式,請檢視以下示例。首先建立一個 Imagick 物件,並以影像作為輸入。然後,應用“vignetteImage”函式並指定所有引數(黑點=30,白點=10,x=40,y=20)。最後,使用“writeImage()”函式獲取輸出。

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

假設以下是程式中的輸入影像 (image.png):

Vignette Image

輸出

Vignette Image

圓角

人們普遍認為圓角更容易讓人眼舒適。也就是說,它們分別適合頭部和眼睛的自然運動。圓角影像還可以使影像看起來更有條理和整潔。

要圓角影像,ImageMagick 提供了一個內建函式“roundCorners()”。此函式以影像作為輸入,圓角影像,並生成該影像作為輸出。

語法

public Imagick::roundCorners(
   float $x_rounding,
   float $y_rounding,
   float $stroke_width =10,
   float $displace =5,
   float $size_correction =-6
): bool

此函式有 5 個引數:x_rounding、y_rounding、strike_width、displace 和 size_correction。“x_rounding”和“y_rounding”是浮點值,它們控制圓角的程度。“stroke_width”、“displace”和“size-correction”也是浮點值,用於微調圓角過程。

示例

透過此示例,您將能夠清楚地理解此函式的使用。首先透過建立新的 Imagick 物件將影像作為輸入。使用指定的引數(x_rounding=20,y_rounding=20,stroke-width=5,displace=5,size-correction=-10)將“roundCorners()”函式應用於該影像。然後,使用函式“writeImage()”獲取輸出影像。

<?php
   $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/imagee.png");
   $image->roundCorners(20, 20, 5, 5, -10);
   $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/roundCornerImage.png");
?>

假設以下是程式中的輸入影像 (image.png):

Rounding Corners

輸出

Rounding Corners

拍立得影像

在本章中,您將學習模擬拍立得照片。拍立得照片是由拍立得相機拍攝的照片。它是一種拍攝照片並在幾秒鐘後列印的照片的相機。它是一種即時列印型別,並具有特殊型別的膠片支架。為了模擬拍立得影像,ImageMagick 提供了一個內建函式“polaroidImage()”

語法

public Imagick::polaroidImage(ImagickDraw $properties, float $angle): bool

此函式接收 2 個引數:屬性和角度。“屬性”指定拍立得屬性,“角度”以浮點值指定拍立得角度。

示例

在此示例中,您建立了一個新的 imagick 物件並以影像作為輸入。然後,透過指定引數,在該影像上應用“polaroidImage()”函式。拍立得影像作為輸出獲得。

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

假設以下是程式中的輸入影像 (image.png):

Polaroid Image

輸出

Polaroid Image

建立平行四邊形

在本節中,您將學習“shearImage()”函式。它是 ImageMagick 提供的內建函式。它的功能是建立平行四邊形。此函式以影像作為輸入,並在 X 和 Y 軸上剪下影像以建立平行四邊形,並新增背景顏色。

語法

public Imagick::shearImage(mixed $background, float $x_shear, float $y_shear): bool

此函式接收 3 個引數:背景、x_shear 和 y_shear。“背景”指定背景顏色,“x_shear”指定在 X 軸上剪下的度數,“y_shear”指定在 Y 軸上剪下的度數。

示例

在以下示例中,將影像作為輸入,並將“shearImage()”函式應用於該影像。它接收 3 個引數(背景顏色=rgb(100, 200, 150),x_shear=10 和 y_shear=10)。使用函式“writeImage()”顯示獲得的輸出。

<?php
   $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.png");
   $image->shearImage('rgb(100, 200, 150)', 10, 10);
   $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/shearImage.png");
?>

假設以下是程式中的輸入影像 (image.png):

Creation Parallelogram

輸出

Creation Parallelogram
廣告

© . All rights reserved.