QuickThumb is an on the fly, thumbnail creation middleware for express. It utilizes the popular *nix image library, ImageMagick. It allows for the automatic creation of thumbnails by adding query parameters onto a standard image url. It's ideal for web developers who would like to easily experiment with different size thumbnails, wihout having to worry about pre-generating an entire library.
QuickThumb also comes with a command line utility to batch create thumbnails. This is more appropriate for production systems where all images should be pre-generated.
var express = require('express'), app = express(), qt = require('quickthumb'); app.use('/public', qt.static(__dirname + '/../public'));
<img src="/public/images/red.gif?dim=200x100" />
npm install quickthumb
ImageMagick is required for this module, so make sure it is installed.
apt-get install imagemagick
Mac OS X
brew install imagemagick
yum install imagemagick
Middleware to replace
path is the base directory where images are located.
options is an object to specify customizations. It currently has the following options:
typeThe type of imagemagick conversion to take place. There are currently only two options:
crop(default) Crops and zooms images to the exact size specified. Proxy to imagemagick.crop.
resizeResizes an image to fit within the specified dimensions, but actual dimensions may not be exactly as specified. Proxy to imagemagick.resize.
cacheDirThe directory where generated images will be created. If not supplied, images will be created in
qualityThe quality to use when resizing the image. Values should be between 0 (worst quality) and 1 (best quality)
Resizing of images is directed by the query parameter
dim. This is in the format [width]x[height]. E.g.
Resized images will be created on an as needed basis, and stored in
dim parameter is not present, the original image will be served.
The first argument is an options object.
dst, and at least one of
height are required
src(required) Path to source image
dst(required) Path to destination image
widthWidth of resized image
heightHeight of resized image
The callback argument gets 2 arguments. The first is an error object, most likely from imagemagick's convert. The second argument is the path to the created image.
node bin/make-thumb.js src dst [width]x[height] [-p] [-r] [--resize]
srcPath to the source image or directory
dstPath to the destination image or directory
[width]x[height]Dimensions of the resized images
-pCreate a subdirectory in
dstbased off of the dimensions
-rProcess images recursively from
--resizeUse resize instead of crop
// Resize a single image and write it to /tmp/red.gif node bin/make-thumb.js public/images/red.gif /tmp/ 200x200 // Resize all images recursively from public/images/* and write them to /tmp/200x200/* node bin/make-thumb.js public/images/ /tmp/ 200x200 -p -r