Yii2 image thumbnail
Create image thumbnails use Imagine. Thumbnail created and cached automatically.
It allows you to create placeholder with service https://placeholder.com/, holder.js or Imagine, (*1)
Features:
- Easy to use
- Use Imagine
- TinyPng compression
- Automaticly thumbnails caching
- Cache sorting to subdirectories
- Caching placeholder from URL (placeholdit.imgix.net)
- Use placeholdit.imgix.net
Installation
Composer
The preferred way to install this extension is through Composer., (*2)
Either run php composer.phar require sadovojav/yii2-image-thumbnail "dev-master"
, (*3)
or add "sadovojav/yii2-image-thumbnail": "dev-master"
to the require section of your composer.json
, (*4)
Config
Attach the component in your config file:, (*5)
'components' => [
'thumbnail' => [
'class' => 'sadovojav\image\Thumbnail',
],
],
Parameters
- string
basePath
= null
- Base path
- string
prefixPath
= null
- Prefix path
- string
cachePath
= @runtime/thumbnails
- Cache path alias
- integer
cacheExpire
= 604800
- Cache expire time
- array
options
- Other options (placeholder/quality/additional compression)
Default options:
'options' => [
'placeholder' => [
'type' => sadovojav\image\Thumbnail::PLACEHOLDER_TYPE_URL,
'backgroundColor' => '#f5f5f5',
'textColor' => '#cdcdcd',
'textSize' => 30,
'text' => 'No image'
],
'quality' => 92,
'format' => null, //webp, jpg, png
'tinyPng' => [
'apiKey' => null
]
]
Note
textSize - does't support on PLACEHOLDER_TYPE_URL
, (*6)
Placeholder type
-
- sadovojav\image\Thumbnail::PLACEHOLDER_TYPE_URL - get placeholder by url
-
- sadovojav\image\Thumbnail::PLACEHOLDER_TYPE_IMAGINE - create placeholder used Imagine
Using
Get cache image
echo Yii::$app->thumbnail->img($file, $params, $options);
This method returns Html::img(), (*7)
Parameters
- string
$file
required - Image file path
- array
$params
required - Image manipulation methods. See Methods
- array
$options
- options for Html::img()
For example:
<?= Yii::$app->thumbnail->img(IMAGE_SRC, [
'thumbnail' => [
'width' => 320,
'height' => 230,
],
'placeholder' => [
'width' => 320,
'height' => 230
]
]); ?>
Get cache image url
echo Yii::$app->thumbnail->url($file, $params);
This method returns cache image url, (*8)
Parameters
- string
$file
required - Image file path
- array
$params
- Image manipulation methods. See Methods
For example:
<?= Yii::$app->thumbnail->url(IMAGE_SRC, [
'thumbnail' => [
'width' => 320,
'height' => 230,
],
'placeholder' => [
'width' => 320,
'height' => 230
]
]); ?>
Get placeholder image
echo Yii::$app->thumbnail->img($file, $params, $options);
This method returns Html::img(), (*9)
Parameters
- string
$file
required - must to be Null
- array
$params
required - Image manipulation methods. See Methods
- array
$options
- options for Html::img()
For example:
<?= Yii::$app->thumbnail->img(null, [
'placeholder' => [
'width' => 320,
'height' => 230
]
]); ?>
Get placeholder url
echo Yii::$app->thumbnail->url($file, $params, $options);
This method returns path to placeholder image, (*10)
Parameters
- string
$file
required - must to be Null
- array
$params
required - Image manipulation methods. See Methods
- array
$options
- options for Html::img()
For example:
<?= Yii::$app->thumbnail->url(null, [
'placeholder' => [
'width' => 320,
'height' => 230
]
]); ?>
Method
Resize
'resize' => [
'width' => 320,
'height' => 200
]
Parameters
- integer
width
required - New width
- integer
height
required - New height
Crop
'crop' => [
'width' => 250,
'height' => 200,
]
Parameters
- integer
width
required - New width
- integer
height
required - New height
- integer
x
= 0
- X start crop position
- integer
y
= 0
- Y start crop position
Thumbnail
'thumbnail' => [
'width' => 450,
'height' => 250,
]
Parameters
- integer
width
required - New width
- integer
height
required - New height
- string
mode
= THUMBNAIL_OUTBOUND
- Thumbnail mode THUMBNAIL_OUTBOUND
or THUMBNAIL_INSET
Placeholder
'placeholder' => [
'width' => 450,
'height' => 250,
]
This method return image placeholder if image file doesn't exist., (*11)
Parameters
- integer
width
required - Placeholder image width
- integer
height
required - Placeholder image height
- string
backgroundColor
= #f5f5f5
- Background color
- string
textColor
= #cdcdcd
- Text color
- string
text
= No image
- Text
Watermark
'watermark' => [
'image' => IMAGE_SRC
'posX' => 0,
'posY' => 0,
'width' => 50,
'height' => 50
]
Parameters
- string
image
required - watermark path
- integer
posX
required - X/-X watermark position
- integer
posY
required - Y/-Y watermark position
- integer
width
- Watermark width
- integer
height
- Watermark height
- string
mode
= THUMBNAIL_OUTBOUND
- Thumbnail mode THUMBNAIL_OUTBOUND
or THUMBNAIL_INSET
Compression (TinyPng)
'compress' => true