express-iiif is middleware for Express.js to run an Image API 3.0 compatible IIIF server.
npm install express-iiif
Add the middleware to any Express.js application and provide the path to the directory containing your images.
import express from "express";
import iiif from "express-iiif";
const app = express();
app.use(
"/iiif",
iiif({
imageDir: "./images",
})
);
app.listen(3000, () => {
console.log("⚡️ Server is running at http://localhost:3000");
});
These URLs become available:
- http://localhost:3000/iiif/my-image.jpg/info.json
- http://localhost:3000/iiif/my-image.jpg/full/max/0/default.jpg
- http://localhost:3000/iiif/my-image.jpg/square/300,300/90/gray.gif
For an overview of all available transformations and explaination of the Image Request URI Syntax, vist the Image API 3.0 specification.
For an example application with OpenSeadragon viewer, visit the GitHub Repository examples folder.
Run the example application from the /examples folder with npm run dev
and browse to http://localhost:3000. To build javascript files from the /src to the /dist folder run npm run build
or npm run build:watch
.
Option | Required | Type | Description | Example |
---|---|---|---|---|
imageDir |
Yes | string |
The path to the directory containing the images. | /images |
baseUrl |
No | string |
The absolute URL of the IIIF server. | http://example.com/path/to/iiif |
maxWidth |
No | number |
https://iiif.io/api/image/3.0/#42-size | 1000 |
maxHeight |
No | number |
https://iiif.io/api/image/3.0/#42-size | 1000 |
maxArea |
No | number |
https://iiif.io/api/image/3.0/#42-size | 500000 |
quality |
No | string |
https://iiif.io/api/image/3.0/#43-quality | gray |
rights |
No | string |
https://iiif.io/api/image/3.0/#56-rights | https://rightsstatements.org/page/InC-EDU/1.0/?language=en |