Exemplo n.º 1
0
 /**
  * saveImage
  *
  * @param UploadedFile $file
  * @param string        $imageName
  */
 public function saveImage($file, $imageName)
 {
     if (!$file) {
         return;
     }
     $uploadDir = $this->getUploadDir();
     $this->prepareUploadDir($uploadDir);
     if (is_array($this->thumbs) and !empty($this->thumbs)) {
         foreach ($this->thumbs as $dir => $size) {
             $img = Image::factory($file->tempName);
             // If $size is array of dimensions - resize, else - just save
             if (!is_array($size)) {
                 $size = [$this->slider->width, $this->slider->height];
             }
             $img->resize(implode(',', $size))->save($uploadDir . '/' . $dir . '/' . $imageName);
         }
         @unlink($file->tempName);
     } else {
         $file->saveAs($uploadDir . '/' . $imageName);
     }
 }
Exemplo n.º 2
0
 /**
  * @param integer       $width
  * @param integer     $height
  * @param string $dir
  * @param string $attr
  *
  * @return string
  */
 public function getCroppedImage($width, $height, $dir = 'full', $attr = 'image')
 {
     if (!is_file($this->getCroppedImagePath($width, $height, $attr)) && is_file($this->getImagePath($dir, $attr))) {
         $image = Image::factory($this->getImagePath($dir, $attr));
         $old_aspect = $image->width / $image->height;
         $new_aspect = $width / $height;
         if ($old_aspect == 1) {
             if ($width > $height) {
                 $image->resize($width, $height, Image::WIDTH);
             } else {
                 $image->resize($width, $height, Image::HEIGHT);
             }
         } elseif ($old_aspect < $new_aspect) {
             $image->resize($width, $height, Image::WIDTH);
         } else {
             $image->resize($width, $height, Image::HEIGHT);
         }
         $image->crop($width, $height);
         $image->save($this->getCroppedImagePath($width, $height, $attr));
     }
     return Yii::$app->request->baseUrl . '/images/' . trim($this->tableName(), '{}%') . '/_cropped/' . $width . '_' . $height . '_|_' . $this->{$attr};
 }
Exemplo n.º 3
0
 public function uploadImage()
 {
     if ($this->validate()) {
         if (!$this->imageFile) {
             return true;
         }
         if ($this->avatar) {
             unlink(\Yii::getAlias('@webroot') . '/' . Yii::$app->params['uploadPath'] . $this->avatar);
             unlink(\Yii::getAlias('@webroot') . '/' . Yii::$app->params['uploadPreviewPath'] . $this->avatar);
         }
         $imageName = Yii::$app->security->generateRandomString() . '.' . $this->imageFile->extension;
         $imageDatePath = date('Ymd') . '/';
         $imageDir = \Yii::getAlias('@webroot') . '/' . Yii::$app->params['uploadPath'] . $imageDatePath;
         FileHelper::createDirectory($imageDir);
         $resultSaveImage = $this->imageFile->saveAs($imageDir . $imageName);
         if ($resultSaveImage) {
             $imagePreview = Image::factory($imageDir . $imageName);
             $imagePreview->resize(200, 200);
             $imagePreviewDir = \Yii::getAlias('@webroot') . '/' . Yii::$app->params['uploadPreviewPath'] . $imageDatePath;
             FileHelper::createDirectory($imagePreviewDir);
             $resultSaveImagePreview = $imagePreview->save($imagePreviewDir . $imageName);
             if ($resultSaveImagePreview) {
                 $this->avatar = $imageDatePath . $imageName;
                 return true;
             }
         }
     }
     return false;
 }