裁剪是在图像的左侧完成的
Cropping is done to the left side of image
我正在使用裁剪代码
$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);
但它被裁剪在图像的左侧而不是中间。
请提出建议。
$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')
.
我正在使用裁剪代码
$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);
但它被裁剪在图像的左侧而不是中间。
请提出建议。
$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')
.