Node.js wrapper for image compression algorithms.
- Overview - API
Supporting of other types of images is coming soon.
This command will install image-optim and all supported compression algorithms automatically. The installation of the compression algorithms is subscribed in script env-setup.
@param {String} – a list of paths to files to optimize
@param {Object} – options:
reporters {String} - reporters of the results. flat - writes the results to
@returns {Promise Object} – the information about optimized files:
@param {String} – a list of paths to files to check
@param {Object} – options:
tolerance {Number} – sets the measurement error in percentages (decimal
type | skope | description --- | --- | --- percentages | < 1 | The file will be considered to be optimized if the percentage of saved bytes after the compression is less than the specified value (0.8 –
reporters {String} - reporters of the results. flat - writes the results to
@returns {Promise Object} – the information about linted files:
REMARK! More information about options
- Overview - API
- [imageOptim.optim](#imageoptimoptim)
- [imageOptim.lint](#imageoptimlint)
- [Exit code](#exit-code)
- [SUCCESS](#imageoptimsuccess)
- [CANT_COMPRESS](#imageoptimcant_compress)
- [DOESNT_EXIST](#imageoptimdoesnt_exist)
- [Example](#example)
- CLI- [Example](#example-1)
Types
Supporting of other types of images is coming soon.
Patches
You can view all the patches which are applied to the algorithms here.Overview:
- optipng.patch – adds to OptiPNG the ability to remove RGB components or transparent pixels in RGB+alpha images.
- zopflipng.patch – makes Zopflipng work on Linux.
Install
$ npm install imageoptim
This command will install image-optim and all supported compression algorithms automatically. The installation of the compression algorithms is subscribed in script env-setup.
Usage
API
var imageOptim = require('imageoptim');
imageOptim.optim
Optimizes the given files.@param {String} – a list of paths to files to optimize
@param {Object} – options:
reporters {String} - reporters of the results. flat - writes the results to
stdout
, html - creates the HTML report of the results in file imageoptim-report.html
(default: flat
).@returns {Promise Object} – the information about optimized files:
[{ name: 'file.ext', savedBytes: 12345, exitCode: 0 }]
imageOptim.lint
Checks whether the given files can be optimized further.@param {String} – a list of paths to files to check
@param {Object} – options:
tolerance {Number} – sets the measurement error in percentages (decimal
< 1
) or bytes (integer or decimal >= 1
) (default: 0
).type | skope | description --- | --- | --- percentages | < 1 | The file will be considered to be optimized if the percentage of saved bytes after the compression is less than the specified value (0.8 –
80%
, 0.01 – 1%
, etc)
bytes | >= 1 | The file will be considered to be optimized if the number of saved bytes after the compression is less than the specified value (20 – 20 bytes
, 100500 – 100500 bytes
, etc)reporters {String} - reporters of the results. flat - writes the results to
stdout
, html - creates the HTML report of the results in file imageoptim-report.html
(default: flat
).@returns {Promise Object} – the information about linted files:
[{ name: 'file.ext', isOptimized: true, exitCode: 0 }]
Exit code
imageOptim.SUCCESS
If a file was processed without errors its exit code will be equal to0
.imageOptim.CANTCOMPRESS
If a file can not be processed by one of the algorithms its exit code will be equal to1
.imageOptim.DOESNTEXIST
If a file does not exist its exit code will be equal to2
.Example
var imageOptim = require('imageoptim');
// optimization
imageOptim.optim(['1.png', '2.png'], { reporters: ['flat', 'html'] })
.then(function (res) {
console.log(res);
})
.done();
// linting
imageOptim.lint(['1.png', '2.png'], {
tolerance: 0.08,
// tolerance: 20,
reporters: ['flat', 'html']
})
.then(function (res) {
console.log(res);
})
.done();
CLI
$ imageoptim --help
Node.js wrapper for image compression algorithms
Usage:
imageoptim [OPTIONS] [ARGS]
Options:
-h, --help : Help
-v, --version : Shows the version number
-l, --lint : Lint mode
-t TOLERANCE, --tolerance=TOLERANCE : sets the measurement error in percentages or bytes (default: 0)
-r REPORTERS, --reporter=REPORTERS : flat or/and html (default: flat)
Arguments:
FILES : Paths to files (required)
REMARK! More information about options
lint
and tolerance
can be found in the API.Example
$ imageoptim path/to/file1 path/to/file2 --reporter=flat --reporter=html # optimization
$ imageoptim path/to/file --lint --tolerance=0.08 --reporter=flat --reporter=html # linting, tolerance is `8%`
$ imageoptim path/to/file --lint --tolerance=20 # linting, tolerance is `20 bytes`