Skip to content

Commit

Permalink
[readme] js code blocks use gh-style markup to enable syntax highligh…
Browse files Browse the repository at this point in the history
…ting
  • Loading branch information
rsms committed Sep 22, 2012
1 parent 891b628 commit 751aca9
Showing 1 changed file with 86 additions and 69 deletions.
155 changes: 86 additions & 69 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@ Requires imagemagick CLI tools to be installed. There are numerous ways to insta

## Example

var im = require('imagemagick');
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
```javascript
var im = require('imagemagick');
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

Expand All @@ -33,111 +35,126 @@ 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 }
})
```javascript
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
})
```javascript
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

```javascript
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, metadata){
if (err) throw err
console.log('stdout:', stdout);
})
```javascript
im.convert(['kittens.jpg', '-resize', '25x120', 'kittens-small.jpg'],
function(err, metadata){
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: []
}
```javascript
{
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')
});
```javascript
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')
});
```javascript
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
})
```javascript
im.crop({
srcPath: path,
dstPath: 'cropped.jpg',
width: 800,
height: 600,
quality: 1,
gravity: "North"
}, function(err, stdout, stderr){
// foo
});
```

## License (MIT)

Expand Down

0 comments on commit 751aca9

Please sign in to comment.