PHP ImageMagick - 圖片裁剪



圖片裁剪是指剪裁圖片的一部分或透過修剪不必要的部位來減小圖片尺寸。這使您可以專注於圖片中的重要元素,同時丟棄任何不必要的元素。

使用 ImageMagick 進行圖片裁剪是一種快速編輯圖片的好方法,無需任何特殊軟體或複雜的圖形設計技術知識。

在本節中,您將學習如何使用 ImageMagick 庫提供的內建函式來裁剪圖片。

圖片裁剪

從影像中提取區域稱為“裁剪”。它只是去除影像不需要的邊緣或獲取影像的特定部分。這可以使用 ImageMagick 中名為 **‘cropImage()’** 的方法在 PHP 中完成。

語法

public Imagick::cropImage(int $width, int $height, int $x, int $y) : bool

引數

此方法接受四個引數:寬度、高度、x 和 y。

  • **寬度** - 裁剪的寬度,

  • **高度** - 裁剪的高度,

  • **x** - 裁剪區域左上角的 X 座標。

  • **y** - 裁剪區域左上角的 Y 座標。

獲得的輸出將是根據作為該方法引數給出的測量值裁剪的影像。

示例

在下面的示例中,建立了一個 Imagick 物件並讀取輸入影像。隨後,使用 **'cropImage()'** 函式根據函式中提供的引數裁剪影像。輸出(即裁剪後的影像)可以直接在伺服器上顯示,也可以使用 **'writeImage()'** 函式儲存到您的系統中,並使用任何所需的名稱和格式。

<?php
   $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.jpg");
   $image->cropImage(800, 750, 200, 100);
   $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/newimage.png");
?>

假設程式中的輸入影像如下 (image.jpg) -

Image-Cropping

輸出

Image-Cropping

建立裁剪的縮圖

縮圖是以較小影像形式表示的較大影像。它旨在更容易、更快地檢視或管理一組較大的影像。ImageMagick 透過提供 **‘cropThumbnailImage()’** 方法來幫助我們建立裁剪的縮圖。

語法

public Imagick::cropThumbnailImage(int $width, int $height, bool $legacy = false): bool

此方法透過首先放大或縮小影像並從中心裁剪指定區域來幫助建立固定大小的縮圖。

此方法接受兩個引數,寬度和高度。它們分別指定縮圖的寬度和高度。

示例

在下面的示例中,建立了 imagick 物件。然後,使用 **‘cropThumbnailImage()’** 函式獲得固定大小的縮圖,並使用 **‘writeImage()’** 函式獲得輸出。

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

假設程式中的輸入影像如下 (image.jpg) -

Creating a Cropped Thumbnail

輸出

Creating a Cropped Thumbnail

影像切割

有時,在選擇影像時,不需要整個影像。在您只需要影像的一部分或影像的特定區域的情況下,**‘chopImage()’** 函式可以幫助我們。此函式幫助我們去除影像的區域並根據使用者的規範修剪影像。

語法

public Imagick::chopImage (int $width, int $height,int $x,int $y): bool

此函式接受四個引數:

  • 寬度 - 寬度也是一個整數,儲存被切割區域的寬度。

  • 高度 - ‘高度’ 是一個整數,儲存被切割區域的高度。

  • x - 被切割區域的 x 座標。

  • y - 被切割區域的 y 座標。

示例

在下面的示例中,您將學習如何使用 **'chopImage()'** 函式。首先,建立一個 Imagick 物件並將其作為輸入影像。

然後,將 **'chopImage()'** 應用於影像,引數為寬度、高度、x 座標和 y 座標。

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

假設程式中的輸入影像如下 (image.jpeg) -

Chopping Images

輸出

Chopping Images
廣告