A streaming interface for resizing image buffers in node
MIT License
A streaming interface for resizing image buffers in node.
Internally, this is actually buffering the stream input before creating the resized image using the canvas module and pushing out the new image buffer synchronously. So there's room for improvement - pull requests welcome :)
createStream(width, height[, options])
Creates a transform stream which will take an image buffer as input, streaming
out a resized image buffer as output. Both width
and height
are optional
parameters, but you must specify at least one of them. You can omit them by
passing in null
, e.g. to resize to fit 100 pixels high:
var resize = require('image-resize-stream')
var fs = require('fs')
fs.createReadStream('original.png')
.pipe(resize(null, 100))
.pipe(fs.createWriteStream('original-100.png'))
The stream's options are as follows:
crop
: either true
or false
, defaulting to false
.format
: may be either png
or jpg
.quality
: if creating a jpg image, this should be a number between 0 and 100smaller
: whether to scale to handle the smallest of width/heightfalse
.MIT. See LICENSE.md for details.