如何图像上传和裁剪并保存在yii中

时间:2012-05-14 10:28:20

标签: yii crop jcrop image-upload

我正在尝试以yii格式上传图像,然后裁剪上传的图像,然后保存。到目前为止我所取得的成就是我可以上传表单提交,但我不明白裁剪它或使用jcrop因为任何人都可以发送一些有用的教程 我在控制器中做的是

public function actionCreate()
{
    $model=new Userprofile;
    if(isset($_POST['Userprofile']))
    {
    $model->attributes=$_POST['Userprofile'];
    $model->profilePic=CUploadedFile::getInstance($model,'profilePic');
    $ext = $model->profilePic->getExtensionName();
    $imagename=date('dmy').time().rand();
    $pp=$model->profilePic;
    $model->profilePic=$imagename.'.'.$ext;
    if($model->save())
        mkdir('profilepics/'.$model->id,0777);
        $pp->saveAs('profilepics/'.$model->id.'/'.$imagename.'.'.$ext);
        $this->redirect(array('view','id'=>$model->id));
    }
    $this->render('create',array('model'=>$model,));
}

2 个答案:

答案 0 :(得分:3)

您可以使用jquery插件imageAreaSelect来获取客户端裁剪的坐标。这是实例http://odyniec.net/projects/imgareaselect/

然后将坐标传递给model`s beforeSave并使用Imagick :: cropImage()(而不是Imagick,你可以使用GD或任何其他你想要的库)裁剪它。

答案 1 :(得分:0)

NavaJcrop扩展是为我上传和裁剪图像的最佳解决方案之一。这里是扩展的链接 NavaJcrop Extension

请按照步骤