image-shrink

Middleware for resizing images

npm install image-shrink
2 downloads in the last week
4 downloads in the last month

Image shrink

Connect middleware that resizes images on the fly with graphicsmagick.

It supports cropping & scaling, and caches the resulting images.

Usage

app.use(require("node-shrink")(options));

Shrink will then intercept all calls to:

  • /resize/filename-40x60.jpg?hash=0123456789abcdef
  • /crop/filename-40x60.jpg?hash=0123456789abcdef

Where the hex hash can either be (pseudo code):

md5(cacheFilename + secret) (when you can generate the hashes for each file individually)

or

md5("resize-40x60-secret") (when you have a JS app wher you can't leak the secret, but give the permission to generate a specify size of images)

Options

quality

0-100, the quality of the resulting images

secret

string

getFileUri

This function get's called with the filename parameter, and should return a complete URI to the filename. If you're working with mongo or some other store for your images, read the image here, and save it temporarely. Then call the callback with the isTmpFile parameter like this:

getFileUri = function(filename, callback) {
  // Read file here and save it to tmpFileUri
  callback(tmpFileUri, true);
  // Passing `true` here tells image-shrink that it should delete the
  // file when the image has been processed.
};

cachePath

The path for the cache.

npm loves you