node package manager
It’s your turn. Help us improve JavaScript. Take the 2017 JavaScript Ecosystem Survey »


image-resize-stream Flattr this!experimental

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')
  .pipe(resize(null, 100))

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 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 to false.


MIT. See for details.