2013-02-07 153 views
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); 
我没有获得期望的结果

,请大家帮帮忙,我在做什么错?

+0

整数坐标..前两个不是目标点吗?在这种情况下,0,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)COORDS新形象,在复制1040 * 500盒( 0,0)coords。

2

你想要什么大概是这样的:

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

告诉PHP来:

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

这样,您可以将原始图像从画布上移开200像素,并将画布宽度缩小400px(这样右边的200像素也会被截断)。

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