Magician
Library for easy image manipulation. Requires ImageMagick.

Features
- Conversion from/to different formats
- Resizing
- Cropping
- Defining and executing custom processing on given image (filters, middleware)
- Defining presets
Installation
npm install magician --save
Requirements
- node v0.11.x (or newer)
- imagemagick
If you are happy user of Mac, you can install ImageMagick using HomeBrew:
brew install imagemagick
or using ImageMagick Installer by CactusLab.
Getting Started
Simplest example of using Magician:
var Image = require('magician');
var image = new Image('/path/to/image.jpg');
image.format('jpg')
.width(500)
.height(300);
var newImage = yield image.save()
Guide
Assuming the beginning of all code listings is:
var Image = require('magician');
Conversion from/to different formats
var image = new Image('/tmp/image.png');
image.format('jpg');
var convertedImage = yield image.save();
Alternative way:
var image = new Image('/tmp/image.png');
var convertedImage = yield image.save('/tmp/output.jpg');
Resizing
var image = new Image('/tmp/image.png');
image.width(500)
.height(300);
var resizedImage = yield image.save('/tmp/resized.png');
Alternative way:
var image = new Image('/tmp/image.png');
image.resize(500, 300);
var resizedImage = yield image.save('/tmp/resized.png');
Cropping
var image = new Image('/tmp/image.png');
image.crop(5, 5, 50, 50);
var croppedImage = yield image.save();
Defining custom processing
var image = new Image('/tmp/image.png');
image.use(function *(next) {
this.set('-trim', '');
yield next;
});
var trimmedImage = yield image.save('/tmp/output.png')
Ability to set a URL as a source
var image = new Image('http://example.com/image.png');
image.format('jpg');
var downloadedImage = yield image.save();
Defining presets
Presets stop repetition and provide a fast way to use all the needed methods and filters on different Image instances using one line:
Image.preset('mobile')
.width(300)
.height(240)
.save();
var image = new Image('/tmp/image.png');
image.use('mobile')
var mobileImage = yield image.save();
Tests
You can run tests by executing:
npm test
License
Magician is released under the MIT License.