imagemin

Minify images

imagemin

Minify images seamlessly

$ npm install --save imagemin
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 (errfiles) {
    if (err) {
        throw err;
    }
    
    console.log(files[0]);
    // => { contents: <Buffer 89 50 4e ...> } 
});

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'));

Creates a new Imagemin instance.

Type: Array|Buffer|String

Set the files to be optimized. Takes a buffer, glob string or an array of glob strings as argument.

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.

Type: Function

Add a plugin to the middleware stack.

Type: Function

Optimize your files with the given settings.

The callback will return an array of vinyl files in files and a Readable/Writable stream in stream.

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.

Compress GIF images.

var Imagemin = require('imagemin');
 
var imagemin = new Imagemin()
    .use(Imagemin.gifsicle({ interlaced: true }));

Compress JPG images.

var Imagemin = require('imagemin');
 
var imagemin = new Imagemin()
    .use(Imagemin.jpegtran({ progressive: true }));

Lossless compression of PNG images.

var Imagemin = require('imagemin');
 
var imagemin = new Imagemin()
    .use(Imagemin.optipng({ optimizationLevel: 3 }));

Lossy compression of PNG images.

var Imagemin = require('imagemin');
 
var imagemin = new Imagemin()
    .use(Imagemin.pngquant());

Compress SVG images.

var Imagemin = require('imagemin');
 
var imagemin = new Imagemin()
    .use(Imagemin.svgo());
$ 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>    Optimization level between 0 and 7
  -p, --progressive                   Lossless conversion to progressive

MIT © imagemin