Imagick
在线手册:中文 英文
PHP手册

Imagick::cropImage

(PECL imagick 2.0.0)

Imagick::cropImageExtracts a region of the image

说明

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

Extracts a region of the image.

参数

width

The width of the crop

height

The height of the crop

x

The X coordinate of the cropped region's top left corner

y

The Y coordinate of the cropped region's top left corner

返回值

成功时返回 TRUE .

错误/异常

错误时抛出 ImagickException .


Imagick
在线手册:中文 英文
PHP手册
PHP手册 - N: Extracts a region of the image

用户评论:

ElPadre (05-Nov-2010 04:55)

Actually, the Imagick::setImagePage(0,0,0,0) is also handy with jpgs and pngs, if you plan to do any more changes on the cropped image that involves positioning and/or gravity (I created a script that does crop, face blur and watermarking in one go, and had a hell of a time determining why the blurs and the watermark text never showed up...).

Christian Dehning (09-Apr-2010 11:57)

When cropping gif-images (I had no problems with jpg and png images), the canvas is not removed. Please run the following command on the cropped gif, to remove the blank space:

$im->setImagePage(0, 0, 0, 0);

vincent dot hoen at gmail dot com (02-Aug-2007 02:35)

There is an easiest way to crop an image : 

$picture = new Imagick('animated_gif.gif');

foreach($picture as $frame){
    $frame->cropImage($width, $height, $x, $y);
}

vincent dot hoen at gmail dot com (01-Aug-2007 04:39)

If you're working with animated gif you might want to process this way (Probably not the best, but at least it works) :

$picture = new Imagick('animated_gif.gif');

//Crop first image
$picture->cropImage($width, $height, $x, $y);

//Crop every other image
while($picture->hasNextImage()){
    $this->nextImage();
    $this->cropImage($width, $height, $x, $y);
}

//display image
$picture->getImageBlob();