PHP ImageMagick - 圖片大小調整



本章將學習如何使用 ImageMagick 提供的各種內建函式自適應地調整影像大小以及按特定尺寸縮放影像。

使用 ImageMagick 調整影像大小時,可以透過兩種不同的方式實現:縮放或裁剪。縮放會導致大小成比例地增加或減少,而裁剪則會根據使用者設定的特定引數裁掉原始影像的部分。

自適應調整影像大小

在許多情況下,我們希望將影像稍微縮小到較小的“網頁尺寸”。為此,ImageMagick 提供了一種名為“adaptiveResizeImage()”的方法,它可以幫助自適應地調整影像大小。這還可以避免在顏色急劇變化時出現模糊。

語法

public Imagick::adaptiveResizeImage(int $columns, int $rows, bool $bestfit = false, bool $legacy = false): bool

此方法的引數為**列數、行數**和**bestfit**。

  • **列數**指定縮放影像中的列數。

  • **行數**表示縮放影像中的行數。

  • **bestfit** 指定是否將影像擬合到邊界框內。

示例

以下示例演示如何在 PHP 中實現此函式。首先建立一個新的 Imagick 物件並獲取輸入影像。然後,對該輸入影像應用**'adaptiveResizeImage()'**方法。最後,將輸出影像儲存為**'adaptiveResizeImage.png'**。

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

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

Resizing Images Adaptively

輸出

Resizing Images Adaptively

將影像縮放至所需尺寸

為了使影像適合網站,必須有一些所需的尺寸。將影像縮放至這些尺寸將刪除不必要的畫素,或建立或新增新的畫素細節。ImageMagick 允許我們使用**‘resizeImage()’**方法在 PHP 中調整影像大小。它以影像作為輸入,並根據所需尺寸調整其大小,並給出輸出。

為了確保影像適合網站,必須將其縮放至特定尺寸。ImageMagick 的**'resizeImage()'**方法允許我們在 PHP 中執行此操作,它接受影像作為輸入,並根據所需尺寸調整其大小,並返回生成的影像。

語法

public Imagick::resizeImage(int $columns, int $rows, int $filter, float $blur, bool $bestfit=false, bool $legacy=false):bool

**resizeImage()**方法的引數為列數、行數、濾鏡、模糊度和bestfit。

  • **列數**和**行數**是分別指定影像寬度和高度的整數值。

  • **濾鏡**是一個整數值,它指的是濾鏡常量列表,例如 filter_point、filter_box、filter_triangle 等。

  • **模糊度**因子是浮點值。如果模糊度因子大於 1,則模糊;如果小於 1,則清晰。

  • **bestfit** 是一個可選的擬合引數。

示例

以下是使用 PHP 調整影像大小的示例。在這裡,我們建立了一個新的 Imagick 物件和一個空影像(作為輸入)。然後,對建立的影像呼叫**'resizeImage()'**方法。輸出將為 PNG 格式,名為**'resizeImage'**。

<?php
   $img=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.jpg");
   $img->resizeImage(200, 300, null, null, null, null);
   $img->writeImage($_SERVER['DOCUMENT_ROOT']."/test/newimage.png");
?>

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

Scaling Images to Desired Dimensions

輸出

Scaling Images to Desired Dimensions
廣告