调整大小并裁剪图像

时间:2011-10-10 06:32:27

标签: php image crop

实际上我不知道有任何PHP函数可以裁剪并使用给定参数(x1,y1,x2,y2,width,height)和图像名称重新调整图像大小。

我看起来像下面的函数,它使用现有参数创建新图像。

 newimg(x1,y1,x2,y2,width,height,image);

目前我已经使用javascript获得了以上所有参数,但现在我想根据上述参数裁剪图像。

2 个答案:

答案 0 :(得分:3)

imagecopyresampled()可以做到这一点:

  

imagecopyresampled()将一个图像的矩形部分复制到另一个图像,平滑地插值像素值,这样,特别是减小图像的大小仍然保持很大的清晰度。

     

换句话说, imagecopyresampled()会在src_image宽度为src_w,高度为src_h的位置(src_xsrc_y)并将其放置在dst_image宽度dst_w和高度dst_h的位置(dst_xdst_y)的矩形区域中。

     

如果源和目标坐标以及宽度和高度不同,将执行图像片段的适当拉伸或收缩。坐标指的是左上角。此功能可用于复制同一图像中的区域(如果dst_imagesrc_image相同)但如果区域重叠,则结果将无法预测。


在您的情况下(未经测试):

function newimg($x1, $y1, $x2, $y2, $width, $height, $image) {
    $newimg = ... // Create new image of $width x $height
    imagecopyresampled(
        $newimg, // Destination
        $image, // Source
        0, // Destination, x
        0, // Destination, y
        $x1, // Source, x
        $y1, // Source, y
        $width, // Destination, width
        $height, // Destination, height
        $x2 - $x1, // Source, width
        $y2 - $y1 // Source, height
    );

    return $newimg;
}

答案 1 :(得分:1)

PHP的主要图像库是GDImageMagick。两者都可以调整大小和裁剪图像。