Imagick::spliceImage

(PECL imagick 2, PECL imagick 3)

Imagick::spliceImageSplices a solid color into the image

说明

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

Splices a solid color into the image.

参数

width

height

x

y

返回值

成功时返回 true

范例

Example #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();
}

?>

User Contributed Notes

fake0 at shenafu dot com 29-Apr-2016 03:16
spliceImage() increases the dimensions of the image without stretching the original image by creating a box of the same color as the image's background.

You can set the color with setImageBackgroundColor() before running spliceImage().

The $width and $height parameters define how much is increased horizontally and vertically, respectively, which determines how big the box is. (Note that these values are not always the same size as the box.) The final dimensions of the new image are
$newWidth = $oldWidth + $width
$newHeight = $oldHeight + $height

So, to expand the image in both directions, $width and $height should be positive values. To expand in only one direction (horizontally or vertically), set one of these values to 0 ($height or $width respectively).

The $x and $y parameters are relative to the original image and define where to put the box. If $x and $y are one of the corners of the original image, the box is placed in the respective corner and expands the image outward from that corner. Otherwise, the box splits the original image to the sides or corners and places the box in the middle of the new image. Thus, you use $x and $y to direct where and how the original image is split. Any remaining space is filled with the background color.