在左侧和右侧裁剪图像

时间:2013-02-07 13:46:39

标签: php image gd

我的图片尺寸为1440 X 500

我需要在200px左侧和200px右侧裁剪此图片。也就是说,新图片的尺寸必须为1040 X 500

我正在尝试这个

$original_w = 1440;
$original_h = 500;

$new_w = 1040;
$new_h = 500;

$new_img = imagecreatetruecolor( $new_w, $new_h);
imagecopyresampled($new_img, $original_img, 200, 0, 200, 0, $new_w, $new_h, $original_w, $original_h);

我没有得到理想的结果,请帮忙,我做错了什么?

2 个答案:

答案 0 :(得分:3)

阅读PHP doc,您使用imagecopyresampled错误:

imagecopyresampled ( 
   resource $dst_image , 
   resource $src_image , 
   int $dst_x , 
   int $dst_y , 
   int $src_x , 
   int $src_y , 
   int $dst_w , 
   int $dst_h , 
   int $src_w , 
   int $src_h 
)

所以:

$original_w = 1440;
$original_h = 500;

$new_w = 1040;
$new_h = 500;

$new_img = imagecreatetruecolor( $new_w, $new_h);
imagecopyresampled($new_img, $original_img, 0, 0, 200, 0, $new_w, $new_h, $new_w, $new_h);

将(200,0)坐标中的1040 * 500框复制到新图像,(0,0)坐标。

答案 1 :(得分:2)

你想要的可能就是:

imagecopyresampled($new_img, $original_img, -200, 0, 0, 0, $new_w, $new_h, $original_w, $original_h);

告诉PHP:

将从坐标(0,0)开始的1440x500图像复制到从(-200,0)开始的1040x500画布

这样,您将原始图像从画布上移开200像素,并将画布宽度缩小400px(这样右侧200px也会被切除)。

我相信你应该寻找你想要的东西。