im-resize
Version:
Efficient image resize with multiple versions support
89 lines (71 loc) • 3.17 kB
Markdown
# im-resize
[](https://app.wercker.com/project/bykey/de024521812381e9c956d9c8fee3c3c4)
[](https://www.npmjs.com/package/im-resize)
[](https://www.npmjs.com/package/im-resize)
[](https://www.npmjs.com/package/im-resize)
[](https://david-dm.org/turistforeningen/node-im-resize)
Efficient image resize with support for multiple thumbnail configurations using
ImageMagick's [`convert`](http://imagemagick.org/www/convert.html) command.
## Requirements
* ImageMagick
## Install
```
npm install im-resize --save
```
## API
```js
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
```js
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](https://github.com/Turistforeningen/node-im-resize/blob/master/LICENSE)