A task-based node.js library for GraphicsMagick / ImageMagick.

View the Project on GitHub diy/wizardry


Wizardry is a task-based library for GraphicsMagick / ImageMagick that focuses on simplicity and getting one thing done right: processing images.

Travis Status


Before installing the module, you will need either GraphicsMagick or ImageMagick installed. If you use homebrew, it can be even simpler, with either just brew install graphicsmagick or brew install imagemagick. GraphicsMagick is recommended, as wizardry uses GraphicsMagick by default. After one of them is installed, run:

npm install wizardry

Basic Usage

var wizardry = require('wizardry');
var task = require('./path/to/your/task.json')

// Easy as one line.
wizardry(['path/to/image.png'], task, callback);

Wizardry requires an array of image(s) to process. It expects that they are valid file paths.

Command line usage

wizardry -i path/to/image.png -t path/to/your/task.json

Task file

A task file in wizardry is a JavaScript object (a .json file works great) that defines each of the commands to be run on an image. They are run in the order listed. It also provides configuration, such as the amount of processes to run, the output directory, and which library to use. If a library is not specified, it will default to GraphicsMagick.

Example task file

    "commands": {
        "modulate": "115, 0, 100",
        "colorize": "7, 21, 50"
    "processes": 10,
    "library": "imagemagick",
    "outputDirectory": "/foo/bar/folder"


npm test