我正在尝试以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,));
}
答案 0 :(得分:3)
您可以使用jquery插件imageAreaSelect来获取客户端裁剪的坐标。这是实例http://odyniec.net/projects/imgareaselect/。
然后将坐标传递给model`s beforeSave并使用Imagick :: cropImage()(而不是Imagick,你可以使用GD或任何其他你想要的库)裁剪它。
答案 1 :(得分:0)
NavaJcrop扩展是为我上传和裁剪图像的最佳解决方案之一。这里是扩展的链接 NavaJcrop Extension
请按照步骤