magician
v0.3.1
Published
Library for cute image manipulation. Requires ImageMagick.
Downloads
38
Maintainers
Readme
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()
// newImage is an Image instance, which points to a newly created image
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();
// convertedImage is an Image instance that points to a converted image
// allows further processing without the need to create a new Image
Alternative way:
var image = new Image('/tmp/image.png');
var convertedImage = yield image.save('/tmp/output.jpg');
// convertedImage is an Image instance that points to a converted image
// allows further processing without the need to create a new Image
Resizing
var image = new Image('/tmp/image.png');
image.width(500)
.height(300);
var resizedImage = yield image.save('/tmp/resized.png');
// resizedImage is an Image instance that points to a resized image
// allows further processing without the need to create a new Image
Alternative way:
var image = new Image('/tmp/image.png');
image.resize(500, 300);
var resizedImage = yield image.save('/tmp/resized.png');
// resizedImage is an Image instance that points to a resized image
// allows further processing without the need to create a new Image
Cropping
var image = new Image('/tmp/image.png');
image.crop(5, 5, 50, 50); // x, y, width, height
var croppedImage = yield image.save();
// croppedImage is an Image instance that points to a resized image
// allows further processing without the need to create a new Image
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')
// done
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();
// image downloaded, done
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();
// done
Tests
You can run tests by executing:
npm test
License
Magician is released under the MIT License.