Awesome
gmsmith
GM engine for spritesmith.
Requirements
gmsmith
depends on gm which depends on GraphicsMagick.
I have found it is best to install from the site rather than through a package manager (e.g. apt-get
) to get the latest as well as without transparency issues.
This module has been developed and tested against 1.3.17
.
Alertnatively, you can use ImageMagick which is implicitly discovered if
gm
is not installed. http://www.imagemagick.org/script/index.php
Getting Started
Install the module with: npm install gmsmith
// Load in our dependencies
var Gmsmith = require('gmsmith');
// Create a new engine
var gmsmith = new Gmsmith();
// Interpret some images from disk
gmsmith.createImages(['img1.jpg', 'img2.png'], function handleImages (err, imgs) {
// If there was an error, throw it
if (err) {
throw err;
}
// We recieve images in the same order they were given
imgs[0].width; // 50 (pixels)
imgs[0].height; // 100 (pixels)
// Create a canvas that fits our images (200px wide, 300px tall)
var canvas = gmsmith.createCanvas(200, 300);
// Add the images to our canvas (at x=0, y=0 and x=50, y=100 respectively)
canvas.addImage(imgs[0], 0, 0);
canvas.addImage(imgs[1], 50, 100);
// Export canvas to image
var resultStream = canvas['export']({format: 'png'});
resultStream; // Readable stream outputting PNG image of the canvas
});
Documentation
This module was built to the specification for spritesmith engines.
Specification version: 2.0.0
https://github.com/twolfson/spritesmith-engine-spec/tree/2.0.0
new Engine(options)
This is also known as new Gmsmith
.
Our Engine
constructor provides support for the following options:
- options
Object
- imagemagick
Boolean
- Flag to indicate whether to use ImageMagick over GraphicsMagick- When
true
, ImageMagick will be used. Otherwise, implicit discovery will be used.
- When
- imagemagick
engine.createImages(images, cb)
Our createImages
methods supports the following types of images:
- image
String
- Filepath to image - image
Object
- Vinyl object withnull
for image (uses provided filepath)
We accept but don't fully support the following types of images:
- image
Object
- Vinyl object with buffer for image (ignores contents, uses provided filepath) - image
Object
- Vinyl object with stream for image (ignores contents, uses provided filepath)
canvas.export(options)
Our export
method provides support for the following options:
- options
Object
- format
String
- Output image format to callback with. Currently, png and jpeg are available. - quality
Number
- Quality of output image on a scale from 0 to 100
- format
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint using npm run lint
and test via npm test
.
Donating
Support this project and others by twolfson via donations.
http://twolfson.com/support-me
License
Copyright (c) 2013 Todd Wolfson
Licensed under the MIT license.