maximal / yii2-avif-thumbnailer
Yii2 (over Imagine) helper for creating and caching AVIF thumbnails in real time
Installs: 13
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- php: ^8.0|^8.1|^8.2
- maximal/php-avif-thumbnailer: ^1.0
- yiisoft/yii2-imagine: ^2.3
README
This is a Yii2 helper over the PHP AVIF thumbnailer which allows you to generate and cache image AVIF thumbnails in your Yii2 application on the fly.
Installation
Install this library with Composer:
composer require "maximal/yii2-avif-thumbnailer"
or add
"maximal/yii2-avif-thumbnailer": "^1.0"
to the require
section of your app’s composer.json
file.
Checking the environment
You will need FFMPEG with AVIF (AV1) coder installed in your system.
For instance in Ubuntu/Debian it is included in ffmpeg
package:
sudo apt install ffmpeg
Check the command:
ffmpeg -version
You should get an output with the version number. Every version after 4.3
should be fine.
If you have installed ffmpeg
to a different command or path, configure
the static property AvifThumbnailer::$ffmpegCommand
before using the helper
(see the example below).
More info about AVIF: https://avif.io/blog/
Generating thumbnails
Use this thumbnailer in your Yii2 application:
use Maximal\Thumbnailers\Yii2\AvifThumbnailer; echo AvifThumbnailer::picture('@webroot/img/image.png', $width, $height);
More options (outbound
instead of default inset
; alt
and class
attribute added):
use Maximal\Thumbnailers\Yii2\AvifThumbnailer; echo AvifThumbnailer::picture( '@webroot/img/image.png', $width, $height, false, ['alt' => 'Alt attribute', 'class' => 'img-responsive'] );
Custom ffmpeg
command:
use Maximal\Thumbnailers\Yii2\AvifThumbnailer; AvifThumbnailer::$ffmpegCommand = '/usr/local/bin/ffmpeg'; echo AvifThumbnailer::picture('/path/to/img/image.jpg', $width, $height);
The helper’s picture()
method uses modern <picture>
HTML tag as follows:
<picture data-cache="hit|new|fail"> <source srcset="/assets/thumbnails/...image.png.avif" type="image/avif" /> <img src="/assets/thumbnails/...image.png" other-attributes="" /> </picture>
Here you have image/avif
source for
browsers which support AVIF images
and traditional (PNG, JPEG, TIFF, GIF) image fallback.
Author
- Websites: https://maximals.ru and https://sijeko.ru
- StackOverflow story: http://stackoverflow.com/users/story/1021887
- Twitter: https://twitter.com/almaximal
- Telegram: https://t.me/maximal