public function actionIndex()
 {
     $imagine = new Imagine();
     $image = $imagine->open('testimage.jpg');
     $image = $image->thumbnail(new Box(320, 320), ImageInterface::THUMBNAIL_INSET);
     $path = Yii::getAlias('@webroot' . DIRECTORY_SEPARATOR . 'wm.png');
     $filter = new WatermarkFilter($imagine, $path, WatermarkFilter::WM_POSITION_CENTER, 5);
     $image = $filter->apply($image);
     $image->save('testimage2.jpg');
     return Html::img('/testimage2.jpg');
     return $this->render('index');
     return '';
 }
예제 #2
0
 /**
  * @param $image
  * @param $variationName
  * @param $variationConfig
  * @return array
  *
  * Resize images by variation config
  */
 public function makeVariation($imagine, $image, $variationName, $variationConfig)
 {
     $errors = [];
     if (!is_array($variationConfig)) {
         return ['Variation config must be an array'];
     }
     $config = VariationHelper::normalizeVariationConfig($variationConfig);
     // here because in normalizeVariationConfig we don't process variation name
     if ($variationName == '_thumb') {
         $config['mode'] = 'outbound';
     }
     if ($config['mode'] == 'inset') {
         $mode = ImageInterface::THUMBNAIL_INSET;
     } else {
         $mode = ImageInterface::THUMBNAIL_OUTBOUND;
     }
     $image = $image->thumbnail(new Box($config['width'], $config['height']), $mode);
     // TODO order of watermark applying (before or after thumbnailing)
     if (isset($config['watermark'])) {
         $filter = new WatermarkFilter($imagine, $config['watermark']['path'], $config['watermark']['position'], $config['watermark']['margin']);
         $image = $filter->apply($image);
     }
     $options = array('quality' => $config['quality']);
     try {
         if (!$image->save($this->getUploadFilePath($variationName), $options)) {
             array_push($errors, 'Can not save generated image.');
         }
     } catch (ErrorException $e) {
         array_push($errors, $e->getMessage());
     }
     return $errors;
 }