imagemin
![Build status](https://ci.appveyor.com/api/projects/status/wlnem7wef63k4n1t)
Minify images seamlessly
Install
$ npm install --save imagemin
Usage
var Imagemin = require('imagemin');
var imagemin = new Imagemin()
.src('images/*.{gif,jpg,png,svg}')
.dest('build/images')
.use(Imagemin.jpegtran({ progressive: true }));
imagemin.run(function (err, files) {
if (err) {
throw err;
}
console.log(files[0]);
});
You can use gulp-rename to rename your files:
var Imagemin = require('imagemin');
var rename = require('gulp-rename');
var imagemin = new Imagemin()
.src('images/foo.png')
.use(rename('bar.png'));
API
new Imagemin()
Creates a new Imagemin
instance.
.src(file)
Type: Array|Buffer|String
Set the files to be optimized. Takes a buffer, glob string or an array of glob strings
as argument.
.dest(folder)
Type: String
Set the destination folder to where your files will be written. If you don't set
any destination no files will be written.
.use(plugin)
Type: Function
Add a plugin
to the middleware stack.
.run(cb)
Type: Function
Optimize your files with the given settings.
cb(err, files, stream)
The callback will return an array of vinyl files in files
and a Readable/Writable
stream in stream
.
Plugins
The following plugins are bundled with imagemin:
- 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('imagemin');
var imagemin = new Imagemin()
.use(Imagemin.gifsicle({ interlaced: true }));
.jpegtran()
Compress JPG images.
var Imagemin = require('imagemin');
var imagemin = new Imagemin()
.use(Imagemin.jpegtran({ progressive: true }));
.optipng()
Lossless compression of PNG images.
var Imagemin = require('imagemin');
var imagemin = new Imagemin()
.use(Imagemin.optipng({ optimizationLevel: 3 }));
.pngquant()
Lossy compression of PNG images.
var Imagemin = require('imagemin');
var imagemin = new Imagemin()
.use(Imagemin.pngquant());
.svgo()
Compress SVG images.
var Imagemin = require('imagemin');
var imagemin = new Imagemin()
.use(Imagemin.svgo());
CLI
$ npm install --global imagemin
$ imagemin --help
Usage
imagemin <file> <directory>
imagemin <file> > <output>
cat <file> | imagemin > <output>
Example
imagemin images/* build
imagemin foo.png > foo-optimized.png
cat foo.png | imagemin > foo-optimized.png
Options
-i, --interlaced Interlace gif for progressive rendering
-o, --optimizationLevel <number> Select an optimization level between 0 and 7
-p, --progressive Lossless conversion to progressive
Related
License
MIT © imagemin