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 ''; }
/** * @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; }