PHP Conference Japan 2024

Imagick::spliceImage

(PECL imagick 2, PECL imagick 3)

Imagick::spliceImage將實心顏色拼接至影像中

描述

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

將實心顏色拼接至影像中。

參數

width

height

x

y

回傳值

成功時回傳 true

範例

範例 #1 Imagick::spliceImage()

<?php
function spliceImage($imagePath, $startX, $startY, $width, $height) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->spliceImage($width, $height, $startX, $startY);
header("Content-Type: image/jpg");
echo
$imagick->getImageBlob();
}

?>

新增註解

使用者貢獻的註解 1 則註解

0
fake0 at shenafu dot com
8 年前
spliceImage() 會增加影像的尺寸,而不會拉伸原始影像,方法是建立一個與影像背景顏色相同的方塊。

您可以在執行 spliceImage() 之前使用 setImageBackgroundColor() 設定顏色。

$width 和 $height 參數定義水平和垂直方向增加多少,這決定了方塊的大小。(請注意,這些值並不總是與方塊的大小相同。)新影像的最終尺寸為
$newWidth = $oldWidth + $width
$newHeight = $oldHeight + $height

因此,若要在兩個方向擴展影像,$width 和 $height 應為正值。若要僅在一個方向(水平或垂直)擴展,請將其中一個值設定為 0(分別為 $height 或 $width)。

$x 和 $y 參數相對於原始影像,並定義方塊的放置位置。如果 $x 和 $y 是原始影像的其中一個角落,則方塊會放置在相應的角落,並從該角落向外擴展影像。否則,方塊會將原始影像分割到兩側或角落,並將方塊放置在新影像的中央。因此,您可以使用 $x 和 $y 來指示原始影像的分割位置和方式。任何剩餘空間都會以背景顏色填滿。
To Top