0.3.1 • Published 11 years ago

magician v0.3.1

Weekly downloads
70
License
MIT
Repository
github
Last release
11 years ago

Magician

Library for easy image manipulation. Requires ImageMagick.

Circle CI

Features

  1. Conversion from/to different formats
  2. Resizing
  3. Cropping
  4. Defining and executing custom processing on given image (filters, middleware)
  5. 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.

0.3.1

11 years ago

0.3.0

11 years ago

0.2.0

11 years ago

0.1.1

13 years ago

0.1.0

13 years ago

0.0.5

13 years ago

0.0.4

14 years ago

0.0.3

14 years ago

0.0.2

14 years ago

0.0.1

14 years ago