【问题标题】:how to image upload and crop and save in yii如何在 yii 中上传和裁剪并保存图像
【发布时间】:2012-05-21 20:01:42
【问题描述】:

我正在尝试在 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,));
}

【问题讨论】:

  • 你在找什么。服务器端裁剪还是客户端裁剪?
  • @dInGd0nG 客户端裁剪然后上传到服务器裁剪图像
  • @Bipin,您必须使用 Flash 组件在客户端裁剪图像。试试这个例子deepliquid.com/projects/Jcrop/demos.php
  • @Sergey 现在我有一个不同的解决方案,我会发布它,感谢您的建议,我也会尝试一下。
  • 搜索 Yii wiki? yiiframework.com/search/…

标签: yii crop jcrop image-upload


【解决方案1】:

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

然后将坐标传递给模型的 beforeSave 并使用 Imagick::cropImage() 进行裁剪(而不是 Imagick,您可以使用 GD 或您想要的任何其他库)

【讨论】:

    【解决方案2】:

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

    请按照它的步骤进行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      • 1970-01-01
      • 1970-01-01
      • 2019-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多