从特定区域调整大小/裁剪图像

时间:2011-09-27 15:24:18

标签: php imagemagick gd image-resizing

我正在尝试找到一个PHP图像库脚本,允许我从大图像中选择特定区域(x,y),然后裁剪/调整大小到较小的图像。

不得扭曲图像(通过拉伸和倾斜图片来调整大小)。如果有必要,可能需要“放大”(或其他什么?)来克服这个问题。

哪个PHP图像库脚本可以执行此操作?

4 个答案:

答案 0 :(得分:3)

WideImage

这是crop demo

E.g。

WideImage::load('a.png')->crop(50, 50, 30, 20)->saveToFile('b.jpg');

答案 1 :(得分:1)

GD(http://php.net/manual/en/book.image.php)或ImageMagick(http://php.net/manual/en/book.imagick.php)都可以进行裁剪操作。

在前端,如果您希望通过页面执行此操作,Jcrop(http://code.google.com/p/jcrop/)是一个不错的jQuery插件。

答案 2 :(得分:1)

您可以使用GD来实现这一目标。 我猜这样的事情可以做到:

/** 
 *@param string $pathToImage The original image (jpg)
 *@param string $outputImage The name of the output image (jpg)
 *@param int $x The top x coordinate of the portion you want to grab
 *@param int $y The top y coordinate of the portion you want to grab
 *@param int $width the width of the portion you want to grab
 *@param int $height the height of the portion you want to grab
 *@return void
 */
function getImagePortion($pathToImage, $outputImage, $x, $y, $width, $height)
{
    $im = imagecreatefromjpeg($pathToImage);
    $portion = imagecreatetruecolor($width, $height);
    imagecopyresampled($portion, $im, 0, 0, $x, $y, $width, $height, imagesx($im), imagesy($im));
    imagejpeg($portion, $outputImage, 100);
}

答案 3 :(得分:0)

我碰巧喜欢这堂课http://www.verot.net/php_class_upload.htm

我知道它说上传,但你也可以处理本地文件,如果它们是图像,它会给你很多非常酷的功能。你可以在http://www.verot.net/php_class_upload_samples.htm

中查找它们

GL