gruntjs/grunt-contrib-imagemin

Minify PNG, JPG, GIF and SVG images.

JavaScript

1,204

214 commits

updated Jul 2, 2024

See the code

README

grunt-contrib-imagemin Build Status: Linux Build Status: Windows

Minify images using imagemin

Install

npm install --save-dev grunt-contrib-imagemin

Usage

const mozjpeg = require('imagemin-mozjpeg');

grunt.initConfig({
    imagemin: {
        static: {
            options: {
                optimizationLevel: 3,
                svgoPlugins: [{removeViewBox: false}],
                use: [mozjpeg()] // Example plugin usage
            },
            files: {
                'dist/img.png': 'src/img.png',
                'dist/img.jpg': 'src/img.jpg',
                'dist/img.gif': 'src/img.gif'
            }
        },
        dynamic: {
            files: [{
                expand: true,
                cwd: 'src/',
                src: ['**/*.{png,jpg,gif}'],
                dest: 'dist/'
            }]
        }
    }
});

grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.registerTask('default', ['imagemin']);

Options

optimizationLevel (png)

  • Type: number
  • Default: 3

Select optimization level between 0 and 7.

The optimization level 0 enables a set of optimization operations that require minimal effort. There will be no changes to image attributes like bit depth or color type, and no recompression of existing IDAT datastreams. The optimization level 1 enables a single IDAT compression trial. The trial chosen is what OptiPNG thinks it’s probably the most effective. The optimization levels 2 and higher enable multiple IDAT compression trials; the higher the level, the more trials.

Level and trials:

  1. 1 trial
  2. 8 trials
  3. 16 trials
  4. 24 trials
  5. 48 trials
  6. 120 trials
  7. 240 trials

progressive (jpg)

  • Type: boolean
  • Default: true

Lossless conversion to progressive.

interlaced (gif)

  • Type: boolean
  • Default: true

Interlace gif for progressive rendering.

svgoPlugins (svg)

Type: Array

Customize which SVGO plugins to use. More here.

use

  • Type: Array
  • Default: [imagemin.gifsicle(), imagemin.jpegtran(), imagemin.optipng(), imagemin.svgo()]

Plugins to use with imagemin. It comes bundled with the following lossless optimizers:

These are bundled for convenience and most users will not need anything else.

concurrency

  • Type: number
  • Default: os.cpus().length

Control the maximum number of image optimizations that may be performed in parallel.

License

MIT © Sindre Sorhus

hacktoberfest

Significant stargazers

Naoyuki

1,081 followers · starred Jan 2014

Patrick H. Lauke

1,180 followers · starred Feb 2016

Alexey Belkov

107 followers · starred May 2015

Van Miranda

41 followers · starred Apr 2014

gruntjs/grunt-contrib-imagemin

Minify PNG, JPG, GIF and SVG images.

JavaScript

1,204

214 commits

updated Jul 2, 2024

See the code

README

grunt-contrib-imagemin Build Status: Linux Build Status: Windows

Minify images using imagemin

Install

npm install --save-dev grunt-contrib-imagemin

Usage

const mozjpeg = require('imagemin-mozjpeg');

grunt.initConfig({
    imagemin: {
        static: {
            options: {
                optimizationLevel: 3,
                svgoPlugins: [{removeViewBox: false}],
                use: [mozjpeg()] // Example plugin usage
            },
            files: {
                'dist/img.png': 'src/img.png',
                'dist/img.jpg': 'src/img.jpg',
                'dist/img.gif': 'src/img.gif'
            }
        },
        dynamic: {
            files: [{
                expand: true,
                cwd: 'src/',
                src: ['**/*.{png,jpg,gif}'],
                dest: 'dist/'
            }]
        }
    }
});

grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.registerTask('default', ['imagemin']);

Options

optimizationLevel (png)

  • Type: number
  • Default: 3

Select optimization level between 0 and 7.

The optimization level 0 enables a set of optimization operations that require minimal effort. There will be no changes to image attributes like bit depth or color type, and no recompression of existing IDAT datastreams. The optimization level 1 enables a single IDAT compression trial. The trial chosen is what OptiPNG thinks it’s probably the most effective. The optimization levels 2 and higher enable multiple IDAT compression trials; the higher the level, the more trials.

Level and trials:

  1. 1 trial
  2. 8 trials
  3. 16 trials
  4. 24 trials
  5. 48 trials
  6. 120 trials
  7. 240 trials

progressive (jpg)

  • Type: boolean
  • Default: true

Lossless conversion to progressive.

interlaced (gif)

  • Type: boolean
  • Default: true

Interlace gif for progressive rendering.

svgoPlugins (svg)

Type: Array

Customize which SVGO plugins to use. More here.

use

  • Type: Array
  • Default: [imagemin.gifsicle(), imagemin.jpegtran(), imagemin.optipng(), imagemin.svgo()]

Plugins to use with imagemin. It comes bundled with the following lossless optimizers:

These are bundled for convenience and most users will not need anything else.

concurrency

  • Type: number
  • Default: os.cpus().length

Control the maximum number of image optimizations that may be performed in parallel.

License

MIT © Sindre Sorhus

hacktoberfest

Significant stargazers

Naoyuki

1,081 followers · starred Jan 2014

Patrick H. Lauke

1,180 followers · starred Feb 2016

Alexey Belkov

107 followers · starred May 2015

Van Miranda

41 followers · starred Apr 2014