Streaming Imagemagick API
Branch: master
Clone or download
Latest commit c3062f7 Feb 7, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
test Merge pull request #25 from choas/master Nov 22, 2017
.gitignore wrap old stream Apr 1, 2013
.travis.yml Update .travis.yml Apr 27, 2018
LICENSE add license Mar 28, 2018
index.js Merge pull request #25 from choas/master Nov 22, 2017
package.json fix(package): update duplexify to version 4.0.0 Feb 4, 2019
readme.md remove greenkeeper badge May 1, 2018

readme.md

imagemagick-stream

Streaming imagemagick api

npm version Build Status

Install

$ npm install imagemagick-stream

Usage

const im = require('imagemagick-stream');
const read = fs.createReadStream('image.png');
const write = fs.createWriteStream('image-resized.png');

const resize = im().resize('200x200').quality(90);
read.pipe(resize).pipe(write);

For convenience, you can also pass the input filename to the constructor and the output filename to the .to() method.

im('image.png')
  .resize('200x200')
  .quality(90)
  .to('image-resized.png');

To use settings and operators that are not currently part of the API, please submit a pull request, or use the .set() and .op() methods.

See the imagemagick docs for a list of available options.

im('image.png')
  .set('density', 400)
  .set('channel', 'RGB')
  .resize('200x200')
  .op('gaussian-blur', 0.05)
  .to('image-resized.png');

NOTE: You shold listen to the finish event on the writable stream you're piping to, not the stream from ImageMagick:

const read = fs.createReadStream('image.png');
const write = fs.createWriteStream('image-resized.png');

im().resize('200x200').quality(90).pipe(write);

write.on('finish', () => {
  // finished writing
});

License

MIT