Php上传文件然后剪裁

问题描述:

我在一个cordova项目。我在服务器端使用Jquery和Jcrop插件和Php gd。 当我上传用户的头像我试图裁剪图片。 上传进行顺利,但没有任何反应。Php上传文件然后剪裁

PHP代码:

if(move_uploaded_file($file,$dirname."/avatar.jpeg")){ 
     $targ_w = $targ_h = 150; 
     $src = $dirname.'/avatar.jpeg'; 
     $img_r = imagecreatefromjpeg($src); 
     $dst_r = ImageCreateTrueColor($targ_w, $targ_h); 
     imagecopyresampled($dst_r,$img_r,0,0,$_POST['avatar_x'],$_POST['avatar_y'], $targ_w,$targ_h,$_POST['avatar_w'],$_POST['avatar_h']); 
    }else{...} 

我没有错误消息

+0

您没有错误讯息?你有没有启用错误检查? – 2014-12-10 21:25:11

+0

您应该在'imagecopyresampled'后保存图像。 – putvande 2014-12-10 21:25:42

+0

错误检查已启用 – Malakiof 2014-12-10 21:26:43

什么也没有发生,因为你不这样做,结果什么。见the documentation for imagecopyresampled

imagecopyresampled()将采取矩形区域从src_image [...],并将其放置在dst_image一个矩形区域。

运行此功能后,结果将在$dst_r,它仍然是一个内存中的图像资源。您现在必须将其保存到文件中。这可以用imagejpeg function完成,例如:

imagejpeg($dst_r, "$dirname/avatar_cropped.jpeg");