Imagick
在线手册:中文  英文

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
在线手册:中文  英文

用户评论:

ElPadre (2010-11-05 08:55:40)

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 (2010-04-09 03:57:52)

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 (2007-08-02 06:35:46)

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 (2007-08-01 08:39:02)

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();

易百教程