-
Composer:
composer require nelson/resizer
-
Register:
extensions: resizer: Nelson\Resizer\DI\ResizerExtension
-
Config:
This is the bare minimum required:
resizer: library: 'Imagick' # Imagick|Gmagick|Gd wwwDir: %wwwDir% tempDir: %tempDir%
Other options with their defaults:
resizer: interlace: true # for progressive JPEGs strip: true # removes image metadata, color profiles etc. cache: '/resizer/' qualityAvif: 70 # 0 - 100 qualityWebp: 70 # 0 - 100 qualityJpeg: 70 # 0 - 100 compressionPng: 9 # 0 - 9 upgradeJpg2Webp: true # automatically convert JPEGs to WEBP when the format is supported by the browser & server upgradeJpg2Avif: true # automatically convert JPEGs to AVIF when the format is supported by the browser & server upgradePng2Webp: true # automatically convert PNGs to WEBP when the format is supported by the browser & server upgradePng2Avif: true # automatically convert PNGs to AVIF when the format is supported by the browser & server
There is also an upgrade/downgrade logic for AVIF & WEBP. Most preferred is the original AVIF/WEBP, then each other, finally JPEG.
AVIF is preferred over WEBP in case both upgrades are enabled.
Order of parameters is dependant on the router, the default is:
- Dimensions & modifiers.
string
- Image file.
string
- Format.
string
Syntax:
- [ifresize-][[cropX]width]x[[cropY]height][forceDimensions][-quality]
100x100
- width and height must be equal or less, resized according to AR.x100
- height must be equal or less.100x
- width must be equal or less.100x50!
- dimensions are forced without respecting ifresize and AR.- Cropping:
- width:
l
- left,c
- center,r
- right. - height:
t
- top,c
- center,b
- bottom. - Example:
c100xc100
- width:
ifresize
- Example:
ifresize-100x200
- If the image is smaller than the desired width and/or height, image will not be enlarged.
- Example:
- Quality
- Example:
x-q50
- sets just the quality without any resize. - For WEBP/AVIF quality set to
100
means lossless compression.
- Example:
- The format parameter can be used to switch between image file formats, e.g.
<source srcset="">
in<picture>
tag for converting jpegs to WEBP/AVIF.
Relative:
<img src="{rlink 'test.jpg', '200x100'}">
Absolute, uses diffent tag:
<img src="{rlinkabs 'test.jpg', 'l400xc200'}">
<a href="{rlinkabs 'test.jpg', 'l400xc200'}" target="_blank">Link to image</a>