Node.js wrapper for image compression algorithms.
Supporting of other types of images is coming soon.
You can view all the patches which are applied to the algorithms here.
-
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.
$ 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.
var imageOptim = require('imageoptim');
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 fileimageoptim-report.html
(default:flat
).
@returns {Promise * Object[]} – the information about optimized files:
[{ name: 'file.ext', savedBytes: 12345, exitCode: 0 }]
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 fileimageoptim-report.html
(default:flat
).
@returns {Promise * Object[]} – the information about linted files:
[{ name: 'file.ext', isOptimized: true, exitCode: 0 }]
If a file was processed without errors its exit code will be equal to 0
.
If a file can not be processed by one of the algorithms its exit code will be equal to 1
.
If a file does not exist its exit code will be equal to 2
.
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();
$ 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.
$ 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`