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) {
callback(tmpFileUri, true);
};
cachePath
The path for the cache.