Create sets of styles for your images
The preferred way to install this extension is through composer.
Either run
$ composer require artkost/yii2-image-style-behavior
or add
"artkost/yii2-image-style-behavior": "*"
to the require
section of your composer.json
file.
Configure model as follows
use artkost\imagestyle\ImageStyleBehavior;
class ImageFile extends \yii\db\ActiveRecord
{
public function behaviors()
{
return [
'styles' => [
'class' => ImageStyleBehavior::className(),
'path' => '@webroot/uploads/styles',
'url' => '@web/uploads/styles',
'attribute' => 'uri',
'styles' => [
'big' => [$this, 'styleBig'], //can be any valid callable
'small' => [$this, 'styleSmall']
]
]
];
}
/**
* @return \Imagine\Image\ManipulatorInterface
*/
public function styleBig()
{
return Image::thumbnail($this->filePath, 814, 458)->save($this->style('big')->path);
}
}
$file = ImageFile::findOne($id);
echo $file->style('big')->url;