altiimagemagick
v0.1.6
Published
A wrapper around the imagemagick cli
Downloads
6
Readme
node-imagemagick
**This version solves the bug of Cannot read property 'split' of undefined
when calling identify
.
Imagemagick module for Node.
Note: This code has been unmaintained for a long time. Please consider using the gm module instead.
You can install this module using yarn:
yarn add altiimagemagick
Requires imagemagick CLI tools to be installed. There are numerous ways to install them. For instance, if you're on OS X you can use Homebrew: brew install imagemagick
.
Example
var im = require('altiimagemagick');
im.readMetadata('kittens.jpg', function(err, metadata){
if (err) throw err;
console.log('Shot at '+metadata.exif.dateTimeOriginal);
})
// -> Shot at Tue, 06 Feb 2007 21:13:54 GMT
API
convert.path
Path to the convert
program. Defaults to "convert"
.
identify.path
Path to the identify
program. Defaults to "identify"
.
identify(path, callback(err, features))
Identify file at path
and return an object features
.
Example:
im.identify('kittens.jpg', function(err, features){
if (err) throw err;
console.log(features);
// { format: 'JPEG', width: 3904, height: 2622, depth: 8 }
});
identify(args, callback(err, output))
Custom identification where args
is an array of arguments. The result is returned as a raw string to output
.
Example:
im.identify(['-format', '%wx%h', 'kittens.jpg'], function(err, output){
if (err) throw err;
console.log('dimension: '+output);
// dimension: 3904x2622
});
readMetadata(path, callback(err, metadata))
Read metadata (i.e. exif) in path
and return an object metadata
. Modelled on top of identify
.
Example:
im.readMetadata('kittens.jpg', function(err, metadata){
if (err) throw err;
console.log('Shot at '+metadata.exif.dateTimeOriginal);
// -> Shot at Tue, 06 Feb 2007 21:13:54 GMT
});
convert(args, callback(err, stdout, stderr))
Raw interface to convert
passing arguments in the array args
.
Example:
im.convert(['kittens.jpg', '-resize', '25x120', 'kittens-small.jpg'],
function(err, stdout){
if (err) throw err;
console.log('stdout:', stdout);
});
resize(options, callback(err, stdout, stderr))
Convenience function for resizing an image, modelled on top of convert
.
The options
argument have the following default values:
{
srcPath: undefined,
srcData: null,
srcFormat: null,
dstPath: undefined,
quality: 0.8,
format: 'jpg',
progressive: false,
width: 0,
height: 0,
strip: true,
filter: 'Lagrange',
sharpening: 0.2,
customArgs: []
}
srcPath, dstPath and (at least one of) width and height are required. The rest is optional.
Example:
im.resize({
srcPath: 'kittens.jpg',
dstPath: 'kittens-small.jpg',
width: 256
}, function(err, stdout, stderr){
if (err) throw err;
console.log('resized kittens.jpg to fit within 256x256px');
});
Example with stdin/stdout:
var fs = require('fs');
im.resize({
srcData: fs.readFileSync('kittens.jpg', 'binary'),
width: 256
}, function(err, stdout, stderr){
if (err) throw err
fs.writeFileSync('kittens-resized.jpg', stdout, 'binary');
console.log('resized kittens.jpg to fit within 256x256px')
});
crop(options, callback)
Convenience function for resizing and cropping an image. crop uses the resize method, so options and callback are the same. crop uses options.srcPath, so make sure you set it :) Using only options.width or options.height will create a square dimensioned image. Gravity can also be specified, it defaults to Center. Available gravity options are [NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast]
Example:
im.crop({
srcPath: path,
dstPath: 'cropped.jpg',
width: 800,
height: 600,
quality: 1,
gravity: "North"
}, function(err, stdout, stderr){
// foo
});