Imager for JavaScript
Features
Brute Force Image Optimization
Optimizes the compression using ML based metrics in a trial ’n error sorta manner.
This is a tool that can competitively optimize (e.g.) extremely noisy, high resolution images; at the expense of increased encoding time and CPU overhead. This is a tradeoff that should be suitable for over 90% of online content, where site performance matters.
It's pretty easy too.
$ npm install --save imager-io
Using the JavaScript non-blocking API:
const ImageBuffer = ;ImageBuffer ;
Compression Benchmarks
source : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 39.00M (4 images)kraken.io : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 24Mjpegmini.com : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 16Mcompression.ai: ▇▇▇▇▇▇▇▇ 8.90Mimager : ▇▇▇▇ 4.20M
Supported Input Image Formats
Format | Decoding |
---|---|
PNG | All supported color types |
JPEG | Baseline and progressive |
GIF | Yes |
BMP | Yes |
ICO | Yes |
TIFF | Baseline(no fax support) + LZW + PackBits |
WebP | Lossy(Luma channel only) |
PNM | PBM, PGM, PPM, standard PAM |
Essentially supports any image decodable by image-rs.
Supported Output Image Formats
These are your optimization targets (for lack of a better name). It’s a bit higher level, since e.g. rate control is automatically handled.
Format | Encoding |
---|---|
JPEG | progressive |
Webpack
It’s possible and pretty easy to use Webpack and Imager already, here is an example.
Feedback, Requests, Bugs, Confusion & Performance Issues
Just use the GitHub issue tracker for this project.
Other Miscellaneous
Articles
Copyright 2019 Colbyn Wadman