我正在尝试使用PHP中的imagecopyresampled函数裁剪jpeg图像。
我遵循了我在众多在线教程中看到的相同模式,例如
http://www.johnconde.net/blog/cropping-an-image-with-php-and-the-gd-library/
这是我的代码:
// image crop coordinates, width and height coming from form on previous page
$x = $_POST['x1'];
$y = $_POST['y1'];
$width = $_POST['width'];
$height = $_POST['height'];
// name of form field
$image_name = "product_images";
if (is_uploaded_file($_FILES[$image_name]['tmp_name'])) {
// file attributes
$file_tmp = $_FILES[$image_name]['tmp_name'];
$file_name = $_FILES[$image_name]['name'];
// target directory and file name;
$target_dir = "tmp/";
$target_file = $target_dir . basename($file_name);
$dest = imagecreatetruecolor($width, $height);
move_uploaded_file($file_tmp, $target_file);
$src = imagecreatefromjpeg($target_file);
imagecopyresampled($dest, $src, 0, 0, $x, $y, $width, $height, $width, $height);
imagejpeg($dest, $target_file . "_crop.jpg", 100);
}
现在脚本运行正常并且没有错误但是当我查看目录时,图像永远不会被裁剪。 $ dest仅包含默认的黑色图像,即使imagecopyresampled()返回true,也不会将裁剪复制到其上。
这是为什么?谁能告诉我。
提前致谢。