1

我有一张带有尺寸的图片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);

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

4

2 回答 2

3

阅读PHP 文档,您使用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);

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

于 2013-02-07T13:53:57.337 回答
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 像素,并将画布宽度缩小 400 像素(这样右边的 200 像素也被切断)。

我相信这应该可以满足您的需求。

于 2013-02-07T13:53:26.623 回答