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 :)
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
: eithertrue
orfalse
, defaulting tofalse
.format
: may be eitherpng
orjpg
.quality
: if creating a jpg image, this should be a number between 0 and 100 to determine the quality of the output image.smaller
: whether to scale to handle the smallest of width/height or heighest, when both are supplied. Defaults tofalse
.
MIT. See LICENSE.md for details.