image-min 
Minify images seamlessly with Node.js
Install
$ npm install --save image-min
Usage
var Imagemin = require('image-min');
var imagemin = new Imagemin()
.src('foo.jpg')
.dest('foo-optimized.jpg')
.use(Imagemin.jpegtran({ progressive: true }));
imagemin.optimize(function (err, file) {
console.log(file);
});
API
new Imagemin()
Creates a new Imagemin instance.
.use(plugin)
Add a plugin to the middleware stack.
.src(file)
Set the file to be optimized. Can be a Buffer or the path to a file.
.dest(file)
Set the destination to where your file will be written. If you don't set any destination
the file won't be written.
.optimize(cb)
Optimize your file with the given settings.
.run(file, cb)
Run all middleware plugins on your file.
Plugins
The follwing plugins are bundled with image-min:
- gifsicle — Compress GIF images.
- jpegtran — Compress JPG images.
- optipng — Lossless compression of PNG images.
- pngquant — Lossy compression of PNG images.
- svgo — Compress SVG images.
.gifsicle()
Compress GIF images.
var Imagemin = require('image-min');
var imagemin = new Imagemin()
.use(Imagemin.gifsicle({ interlaced: true }));
.jpegtran()
Compress JPG images.
var Imagemin = require('image-min');
var imagemin = new Imagemin()
.use(Imagemin.jpegtran({ progressive: true }));
.optipng()
Lossless compression of PNG images.
var Imagemin = require('image-min');
var imagemin = new Imagemin()
.use(Imagemin.optipng({ optimizationLevel: 3 }));
.pngquant()
Lossy compression of PNG images.
var Imagemin = require('image-min');
var imagemin = new Imagemin()
.use(Imagemin.pngquant());
.svgo()
Lossy compression of PNG images.
var Imagemin = require('image-min');
var imagemin = new Imagemin()
.use(Imagemin.svgo());
CLI
You can also use it as a CLI app by installing it globally:
$ npm install --global image-min
Usage
$ imagemin --help
Usage
$ imagemin <file>
$ cat <file> | imagemin
Example
$ imagemin --out foo-optimized.png foo.png
$ cat foo.png | imagemin --out foo-optimized.png
Options
-i, --interlaced Interlace GIF for progressive rendering
-l, --optimizationLevel <number> PNG optimization level (0-7)
-o, --out <file> Output file
-p, --progressive Lossless conversion to progressive
License
MIT License © Kevin Mårtensson