裁剪在图像的左侧完成

时间:2016-06-17 07:38:19

标签: php thumbnails gd crop image-uploading

我正在使用代码进行裁剪

$filename = "thimg.jpg";

// Get dimensions of the coriginal image
list($width, $height) = getimagesize($filename);

// Resample the image
$canvas = imagecreatetruecolor('759', '599');
$current_image = imagecreatefromjpeg($filename);
imagecopy($canvas, $current_image, 0, 0, $width/8, $height/8, '759', '599');
imagejpeg($canvas, $filename.'_cropped.jpg', 100);
chmod($filename.'_cropped.jpg', 0644);
unlink($filename);

但它在图像的左侧裁剪而不是在中间。

请提供建议。

1 个答案:

答案 0 :(得分:1)

$width/8$height/8的结果对于居中作物不正确。

您需要计算:

  

(original_width÷2) - (target_width÷2)

  

(original_height÷2) - (target_height÷2)

在您的具体案例中,如下所示:

imagecopy($canvas, $current_image, 0, 0, ($width/2)-(759/2), ($height/2)-(599/2), 759, 599);

另请注意,您应将大小值传递为整数(759, 599),而不是字符串('759', '599')