0.3.1 • Published 9 years ago

magician v0.3.1

Weekly downloads
70
License
MIT
Repository
github
Last release
9 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

9 years ago

0.3.0

9 years ago

0.2.0

9 years ago

0.1.1

12 years ago

0.1.0

12 years ago

0.0.5

12 years ago

0.0.4

12 years ago

0.0.3

12 years ago

0.0.2

12 years ago

0.0.1

12 years ago