/express-sharp

Real-time image processing for your express application.

Primary LanguageJavaScriptMIT LicenseMIT

express-sharp

express-sharp adds real-time image processing routes to your express application. Images are processed with sharp, a fast Node.js module for resizing images.

Build Status Test Coverage

Installation

$ npm install express-sharp --save

See sharp installation for additional installation instructions.

Usage

Example app.js:

'use strict';

var express = require('express');
var app = express();
var scale = require('express-sharp');

var options = {baseHost: 'mybasehost.com'};
app.use('/my-scale', scale(options));

app.listen(3000));

Render http://mybasehost.com/image.jpg with 400x400 pixels:

GET /my-scale/resize/400?url=%2Fimage.jpg HTTP/1.1
Host: localhost:3000

--> invokes in background:
  GET image.jpg HTTP/1.1
  Host: mybasehost.com

Same as above, but with 80% quality, webp image type and with progressive enabled:

GET /my-scale/resize/400?format=webp&quality=80&progressive=true&url=%2Fimage.jpg HTTP/1.1
Host: localhost:3000

Options

var scale = require('express-sharp');
app.use('/some-path', scale(options));

Supported options:

baseHost

Specify the HTTP base host from which images will be requested.

cors

Specify CORS options as described in cors docs. Example:

app.use('/some-path', scale({
  cors: {
    origin: 'http://example.com'
  }
}));

If not specified, a Access-Control-Allow-Origin: * header is being sent.

Path and query params

format

Output image format.

Default: output format of the requested image.

Valid values: every valid sharp output format string, i.e. jpeg, gif, webp or raw.

progressive

See sharp docs.

Use &progressive=true to enable progressive scan.

quality

See sharp docs.

quality is a Number between 1 and 100.

url

URL/path to original image.

License

MIT