Efficient image resize with multiple versions support


Keywords
ImageMagick, convert, image, resize, thumbnail, versions
License
MIT
Install
npm install im-resize@2.3.2

Documentation

im-resize

Build status NPM downloads NPM version Node version Dependency status

Efficient image resize with support for multiple thumbnail configurations using ImageMagick's convert command.

Requirements

  • ImageMagick

Install

npm install im-resize --save

API

var resize = require('im-resize');

resize(object image, object output, function cb)

Resize a given source image into several versions.

  • object image - source image to resize
    • integer width - image pixel width
    • integer height - image pixel height
    • string path - complete path to source image
  • object output - image resize output config
    • string prefix image versions name prefix (default "")
    • string path image versions directory path
    • integrer quality - global version quality (default 80)
    • object[] versions - array of version objects
      • string suffix - suffix for the resized image (ex. -small)
      • integer maxWidth - max width for resized image
      • integer maxHeight - max height for resized image
      • integer quality - quality for resized image (default 80)
      • string aspect - force aspectratio on resized image (ex. 4:3)
      • boolean flatten - used in conjunction with background
      • string background - set background to transparent image (ex. red)
      • string format - image format for resized image (ex. png)
  • function cb - callback function (Error error, object[] versions)
    • Error error - error output if command failed
    • object[] versions - resized image versions
      • string path path to the resized image

Example

var image = {
  path: '/path/to/image.jpg',
  width: 5184,
  height: 2623
};

var output = {
  versions: [{
    suffix: '-thumb',
    maxHeight: 150,
    maxWidth: 150,
    aspect: "3:2"
  },{
    suffix: '-square',
    maxWidth: 200,
    aspect: "1:1"
  }]
};

resize(image, output, function(error, versions) {
  if (error) { console.error(error); }
  console.log(versions[0].path);   // /path/to/image-thumb.jpg
  console.log(versions[0].width);  // 150
  console.log(versions[0].height); // 100

  console.log(versions[1].path);   // /path/to/image-square.jpg
  console.log(versions[1].width);  // 200
  console.log(versions[1].height); // 200
});

MIT License