/**
  * Creates a new Supporters model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     $model = new Supporters();
     if ($model->load(Yii::$app->request->post())) {
         $imagename = Yii::$app->security->generateRandomString();
         $model->photo = UploadedFile::getInstance($model, 'photo');
         $model->photo->saveAs(Yii::getAlias('@frontend/web/uploads/') . $imagename . '.' . $model->photo->extension);
         $model->photo = '/uploads/' . $imagename . '.' . $model->photo->extension;
         /*****imagine */
         $imagine = new \Imagine\Imagick\Imagine();
         //$imagine = new \Imagine\Gd\Imagine();
         $watermark = $imagine->open('uploads/done.png');
         $image = $imagine->open(Yii::getAlias('@frontend/web') . $model->photo);
         $size = $image->getSize();
         $wSize = $watermark->getSize();
         $bottomRight = new \Imagine\Image\Point($size->getWidth() - $wSize->getWidth(), $size->getHeight() - $wSize->getHeight());
         $image->paste($watermark, $bottomRight);
         $image->save(Yii::getAlias('@frontend/web') . $model->photo);
         /* end */
         $model->save();
         return $this->redirect(['view', 'id' => $model->id]);
     } else {
         return $this->render('create', ['model' => $model]);
     }
 }
 public static function getImages()
 {
     $imageDesignerImages = array();
     $imagesDir = 'public/theme/images/image-designer';
     $imagesThumpnailDir = 'public/uploads/image-designer';
     if ($handle = opendir($imagesDir)) {
         $imagine = new Imagine\Imagick\Imagine();
         while (false !== ($file = readdir($handle))) {
             if ($file != "." && $file != "..") {
                 if (!file_exists($imagesThumpnailDir)) {
                     mkdir($imagesThumpnailDir, 0777, true);
                 }
                 if (!file_exists($imagesThumpnailDir . '/' . $file)) {
                     $image = $imagine->open($imagesDir . '/' . $file);
                     $image->resize(new \Imagine\Image\Box(128, 64))->save(APPPATH . '../' . $imagesThumpnailDir . '/' . $file);
                 }
                 $imageDesignerImages[] = array('image' => $imagesDir . '/' . $file, 'thumbnail' => $imagesThumpnailDir . '/' . $file);
             }
         }
         closedir($handle);
     }
     return $imageDesignerImages;
 }
Exemplo n.º 3
0
 public function crop_by_url($tmpfile, $scale_width, $x, $y, $w, $h)
 {
     $imagine = new Imagine\Imagick\Imagine();
     $image = $imagine->open($tmpfile);
     $image->resize(new Imagine\Image\Box($scale_width, 0))->crop(new Imagine\Image\Point($x, $y), new Imagine\Image\Box($w, $h))->save($tmpfile);
     $uploader = new Uploader();
     $uploader->process($tmpfile);
     return $uploader;
 }
Exemplo n.º 4
0
 public function actionFound()
 {
     if (!Yii::$app->user->isGuest) {
         $user_id = User::find()->where(['social_id' => Yii::$app->user->identity->id])->one();
         if (Yii::$app->user->identity->phonestatus == 'verified' or $user_id['phonestatus'] == 'verified') {
             $model = new Found();
             if ($model->load(Yii::$app->request->post()) && $model->validate()) {
                 if ($model->file = UploadedFile::getInstance($model, 'file')) {
                     $imageName = substr(md5(time()), 0, 5) . substr(time(), 0, 3);
                     $model->file->saveAs(Yii::getAlias('@frontend/web/uploads/') . $imageName . '.' . $model->file->extension);
                     $model->image = 'uploads/' . $imageName . '.' . $model->file->extension;
                     /*****imagine */
                     $imagine = new \Imagine\Imagick\Imagine();
                     //$imagine = new \Imagine\Gd\Imagine();
                     $watermark = $imagine->open('uploads/done.png');
                     $image = $imagine->open(Yii::getAlias('@frontend/web/') . $model->image);
                     $size = $image->getSize();
                     $wSize = $watermark->getSize();
                     $bottomRight = new \Imagine\Image\Point($size->getWidth() - $wSize->getWidth(), $size->getHeight() - $wSize->getHeight());
                     $image->paste($watermark, $bottomRight);
                     $image->save(Yii::getAlias('@frontend/web/') . $model->image);
                     /* end */
                 }
                 if ($model->file2 = UploadedFile::getInstance($model, 'file2')) {
                     $imageName = substr(md5(time()), 0, 5) . substr(time(), 0, 3);
                     $model->file2->saveAs(Yii::getAlias('@frontend/web/uploads/') . $imageName . '2.' . $model->file2->extension);
                     $model->image2 = 'uploads/' . $imageName . '2.' . $model->file2->extension;
                     /*****imagine */
                     $imagine = new \Imagine\Imagick\Imagine();
                     //$imagine = new \Imagine\Gd\Imagine();
                     $watermark = $imagine->open('uploads/done.png');
                     $image = $imagine->open(Yii::getAlias('@frontend/web/') . $model->image2);
                     $size = $image->getSize();
                     $wSize = $watermark->getSize();
                     $bottomRight = new \Imagine\Image\Point($size->getWidth() - $wSize->getWidth(), $size->getHeight() - $wSize->getHeight());
                     $image->paste($watermark, $bottomRight);
                     $image->save(Yii::getAlias('@frontend/web/') . $model->image2);
                     /* end */
                 }
                 if ($model->file3 = UploadedFile::getInstance($model, 'file3')) {
                     $imageName = substr(md5(time()), 0, 5) . substr(time(), 0, 3);
                     $model->file3->saveAs(Yii::getAlias('@frontend/web/uploads/') . $imageName . '3.' . $model->file3->extension);
                     $model->image3 = 'uploads/' . $imageName . '3.' . $model->file3->extension;
                     /*****imagine */
                     $imagine = new \Imagine\Imagick\Imagine();
                     //$imagine = new \Imagine\Gd\Imagine();
                     $watermark = $imagine->open('uploads/done.png');
                     $image = $imagine->open(Yii::getAlias('@frontend/web/') . $model->image3);
                     $size = $image->getSize();
                     $wSize = $watermark->getSize();
                     $bottomRight = new \Imagine\Image\Point($size->getWidth() - $wSize->getWidth(), $size->getHeight() - $wSize->getHeight());
                     $image->paste($watermark, $bottomRight);
                     $image->save(Yii::getAlias('@frontend/web/') . $model->image3);
                     /* end */
                 }
                 if ($model->file4 = UploadedFile::getInstance($model, 'file4')) {
                     $imageName = substr(md5(time()), 0, 5) . substr(time(), 0, 3);
                     $model->file4->saveAs(Yii::getAlias('@frontend/web/uploads/') . $imageName . '4.' . $model->file4->extension);
                     $model->image4 = 'uploads/' . $imageName . '4.' . $model->file4->extension;
                     /*****imagine */
                     $imagine = new \Imagine\Imagick\Imagine();
                     //$imagine = new \Imagine\Gd\Imagine();
                     $watermark = $imagine->open('uploads/done.png');
                     $image = $imagine->open(Yii::getAlias('@frontend/web/') . $model->image4);
                     $size = $image->getSize();
                     $wSize = $watermark->getSize();
                     $bottomRight = new \Imagine\Image\Point($size->getWidth() - $wSize->getWidth(), $size->getHeight() - $wSize->getHeight());
                     $image->paste($watermark, $bottomRight);
                     $image->save(Yii::getAlias('@frontend/web/') . $model->image4);
                     /* end */
                 }
                 $model->status_m = 'inactive';
                 $model->status_f = 'notfound';
                 if ($user_id) {
                     $model->user_id = $user_id['id'];
                 } else {
                     $model->user_id = Yii::$app->user->identity->id;
                 }
                 $user_phone = User::find()->where(['id' => $model->user_id])->one();
                 $model->user_phone = $user_phone['phone'];
                 $model->save();
                 $email = \Yii::$app->mailer->compose()->setTo('*****@*****.**')->setFrom([\Yii::$app->params['adminEmail'] => 'e-Tap.az'])->setSubject('New Found' . $model->id)->setTextBody('Model id is: ' . $model->id)->send();
                 //FlashMessages
                 \Yii::$app->getSession()->setFlash('moderate', '<div id="moderate_msg"><p>Elan qəbul olundu. Administrasiya tərəfindən təsdiqlənəndən sonra, sayta yerləşdiriləcək!</p></div>');
                 return $this->redirect(['elan/found']);
             } else {
                 return $this->render('found', ['model' => $model]);
             }
         }
     } else {
         return $this->redirect(['site/login']);
     }
 }
Exemplo n.º 5
0
/**
 *
 */
function processThumb($request_data)
{
    if (!preg_match('~^/content/thumbs/(?<size>\\d*[x-]\\d*)/(?<crop>\\d+x\\d+\\-\\d+x\\d+|nocrop)/(?<checksum>[\\da-z]{6})/(?<file>.+)~', $request_data[0], $matches)) {
        return false;
    }
    if (!preg_match('~(?<width>\\d*)(?<sign>[x-])(?<height>\\d*)~', $matches['size'], $size_data)) {
        return false;
    }
    if (getCheckSum(array($matches['size'], $matches['crop'], $matches['file'])) !== $matches['checksum']) {
        return false;
    }
    if (!file_exists($original_filename = STATIC_ORIGINAL_FILES_DIR . '/' . $matches['file'])) {
        return false;
    }
    $thumb_name = STATIC_DIR . $request_data[0];
    // load autoloader
    include VENDOR_DIR . '/autoload.php';
    // add library to include path
    set_include_path(get_include_path() . PATH_SEPARATOR . VENDOR_DIR);
    // imagine
    $imagine = new \Imagine\Imagick\Imagine();
    $image = $imagine->open($original_filename);
    // get crop data
    if ($matches['crop'] !== 'nocrop') {
        if (!preg_match('~(\\d+)x(\\d+)\\-(\\d+)x(\\d+)~', $matches['crop'], $crop_data)) {
            return false;
        }
        $crop_point = new Imagine\Image\Point($crop_data[1], $crop_data[2]);
        $crop_box = new Imagine\Image\Box($crop_data[3] - $crop_data[1], $crop_data[4] - $crop_data[2]);
        $image->crop($crop_point, $crop_box);
    }
    if (!file_exists(dirname($thumb_name)) && !mkdir(dirname($thumb_name), 0755, true)) {
        return false;
    }
    // get resize data
    $width = $size_data['width'];
    $height = $size_data['height'];
    if ($width && $height) {
        $size = new Imagine\Image\Box($width, $height);
    } else {
        if ($width) {
            $size = $image->getSize()->widen($width);
        } else {
            if ($height) {
                $size = $image->getSize()->heighten($height);
            }
        }
    }
    if (!empty($size)) {
        if (!empty($size_data['sign']) && $size_data['sign'] === '-') {
            $image = $image->thumbnail($size, \Imagine\Image\ImageInterface::THUMBNAIL_INSET);
            $w_diff = $size->getWidth() - $image->getSize()->getWidth();
            $h_diff = $size->getHeight() - $image->getSize()->getHeight();
            $bg = $imagine->create($size);
            $image = $bg->paste($image, new Imagine\Image\Point($w_diff / 2, $h_diff / 2));
        } else {
            $image = $image->thumbnail($size, \Imagine\Image\ImageInterface::THUMBNAIL_OUTBOUND);
        }
    }
    $options = array('quality' => 85);
    if (!$image->save($thumb_name, $options)) {
        return false;
    }
    if (!($image_data = getimagesize($thumb_name))) {
        return false;
    }
    // optimize
    if ($image_data['mime'] === 'image/jpeg') {
        exec("jpegtran -copy none -optimize" . (filesize($thumb_name) < 10240 ? '' : ' -progressive') . " -outfile {$thumb_name} {$thumb_name}");
    }
    if ($image_data['mime'] === 'image/png') {
        exec("optipng -o5 -quiet -preserve {$thumb_name}");
    }
    header('X-Accel-Redirect: ' . $_SERVER['REQUEST_URI']);
    header('Content-Type: ' . $image_data['mime']);
}
Exemplo n.º 6
0
 /**
  *
  * 创建新文件
  * @param FileDirectory $basedir
  * @param Uploader $uploader
  */
 public function makeFile(Uploader $uploader)
 {
     $filename = $uploader->getTitle();
     if ($file_name = $this->getFilename($filename)) {
         $filepath = $this->path . '/' . $file_name;
         preg_match("/\\.([a-zA-Z0-9]{2,4})\$/", $file_name, $match);
         $ext = $match[1] ? strtolower($match[1]) : '';
         $fileModel = new FileEntry($this->uid);
         if ($fileModel->findOne($filepath)) {
             $filepath = $fileModel->getRecoverPath();
             //获取新文件路径名
         }
         //视频截图
         $thumbID = intval($uploader->thumb_id);
         if (!$thumbID) {
             $thumbInstance = $uploader->getThumbInstance();
             if ($thumbInstance) {
                 //更正截图的方向
                 $fileinfo = $uploader->getInfo();
                 if ($fileinfo['orientation']) {
                     if ($fileinfo['orientation'] < 0) {
                         $angle = intval(360 + $fileinfo['orientation']);
                     } else {
                         $angle = intval($fileinfo['orientation']);
                     }
                     $imagine = new \Imagine\Imagick\Imagine();
                     $image = $imagine->open($thumbInstance->tmpfile);
                     $image->rotate($angle)->save($thumbInstance->tmpfile);
                 }
                 $photoModel = new Photo();
                 if ($photoModel->create($thumbInstance, array('ctrl_type' => 2))) {
                     $thumbID = $photoModel->get_pid();
                 }
             }
         }
         $meta = array('oid' => intval($uploader->oid), 'uid' => $this->uid, 'source' => $uploader->tmpfile, 'size' => $uploader->getLength(), 'mime' => $uploader->getMIME(), 'md5' => $uploader->getMD5(), 'ext' => $ext, 'cid' => $uploader->cid ? $uploader->cid : 0, 'ctrl_type' => $uploader->ctrl_type ? $uploader->ctrl_type : 0, 'thumb_id' => $thumbID, 'meta' => $uploader->getInfo());
         if ($fileModel->create($filepath, $this->get_fid(), $meta)) {
             $this->updateStat($fileModel->size, 1);
             return $fileModel;
         }
     }
     return FALSE;
 }
Exemplo n.º 7
0
 public function createThumb($targetpath, $photoname)
 {
     //echo Yii::getPathOfAlias('application.vendors.Imagine');
     //require_once (Yii::app()->basepath.'/extensions/imagine/imagine-v0.3.0.phar');
     Yii::setPathOfAlias('Imagine', Yii::getPathOfAlias('application.vendors.Imagine'));
     $imagine = new Imagine\Imagick\Imagine();
     $size = new Imagine\Image\Box(50, 50);
     //$image = $imagine->open($targetpath);
     $mode = Imagine\Image\ImageInterface::THUMBNAIL_INSET;
     //echo $mode;
     //use Imagine\Image\Box;
     //use Imagine\Image\Point;
     //$image->resize(new Box(15, 25))
     //->save(Yii::app()->basepath.DIRECTORY_SEPARATOR."portfoliophotos/thumb_".Yii::app()->user->id."_".$photoname);
     $image = $imagine->open($targetpath);
     $thumbnail = $image->thumbnail($size, $mode);
     $thumbnail->save(Yii::app()->basepath . DIRECTORY_SEPARATOR . "profilephotos" . DIRECTORY_SEPARATOR . "thumb_" . Yii::app()->user->id . "_" . $photoname);
     return;
 }