查詢

Imagick::transformImage()函式—用法及示例

「 將影象進行變換,根據提供的變換矩陣對影象進行扭曲、旋轉、縮放、平移等操作 」


函式名稱:Imagick::transformImage()

函式描述:該函式將影象進行變換,根據提供的變換矩陣對影象進行扭曲、旋轉、縮放、平移等操作。

用法:Imagick::transformImage(float $sx, float $sy, float $rx, float $ry, float $tx, float $ty, bool $bestfit = false)

引數:

  • $sx: 影象的水平縮放因子,大於1表示放大,小於1表示縮小。
  • $sy: 影象的垂直縮放因子,大於1表示放大,小於1表示縮小。
  • $rx: 影象的水平旋轉角度,以弧度表示,正值表示順時針旋轉。
  • $ry: 影象的垂直旋轉角度,以弧度表示,正值表示順時針旋轉。
  • $tx: 影象的水平平移量,正值表示向右平移,負值表示向左平移。
  • $ty: 影象的垂直平移量,正值表示向下平移,負值表示向上平移。
  • $bestfit: 是否根據變換後的尺寸調整影象大小,預設為false。

返回值:成功時返回true,失敗時返回false。

示例:

// 建立Imagick物件並載入影象
$image = new Imagick('input.jpg');

// 定義變換引數
$sx = 1.2; // 水平放大20%
$sy = 0.8; // 垂直縮小20%
$rx = deg2rad(45); // 順時針旋轉45度
$ry = deg2rad(-30); // 逆時針旋轉30度
$tx = 100; // 向右平移100畫素
$ty = -50; // 向上平移50畫素

// 進行影象變換
if ($image->transformImage($sx, $sy, $rx, $ry, $tx, $ty, true)) {
    // 變換成功,儲存變換後的影象
    $image->writeImage('output.jpg');
    echo '影象變換成功!';
} else {
    echo '影象變換失敗!';
}

// 銷燬Imagick物件
$image->destroy();

注意事項:

  1. 需要安裝Imagick擴充套件才能使用該函式。
  2. 輸入影象和輸出影象可以是同一檔案,但建議使用不同的檔案進行測試,以免覆蓋原始影象。
  3. 變換後的影象可能會超出原始影象的邊界,可以使用Imagick::extentImage()函式調整影象大小,以適應變換後的尺寸。
補充糾錯
熱門PHP函式
分享連結