golang IIIF Image API server (work in progress)
Go HTML
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
templates
.gitignore
.travis.yml
LICENSE
README.md
iiif.go
server.go
version.go
view.go

README.md

IIIF

Build Status Go Report Card

A sample and quite dumb web server to serve pictures following the iiif API.

Image API Compliance Level 2 is reached.

Setup

libvips is required by bimg.

$ go get -u \
         github.com/gorilla/mux \
         gopkg.in/h2non/bimg.v1 \
         github.com/golang/lint/golint
$ go build -o bin/iiif
$ bin/iiif --help

$ bin/iiif --host 0.0.0.0 --port 8080 --root images

IIIF image API 2.1

The API specifications can be found on iiif.io.

Identifier

  • filename: the name of the file (all the images are in one folder)

Region

  • full: the full image
  • square: a square area in the picture (centered)
  • x,y,w,h: extract the specified region (as pixels)
  • pct:x,y,w,h: extract the specified region (as percentages)

Size

  • full: the full image (deprecated)
  • max: the full image
  • w,h: a potentially deformed image of w x h
  • !w,h: a non-deformed image of maximum w x h
  • w,: a non-deformed image with w as the width
  • ,h: a non-deformed image with h as the height
  • pct:n: a non-deformed image scaled by n percent

Rotate

  • n a clockwise rotation of n degrees
  • !n a flip is done before the rotation

limitations bimg only supports rotations that are multiples of 90.

Quality

  • color image in full colour
  • gray image in grayscale
  • bitonal image in either black or white pixels (not supported)
  • default image returned in the server default quality

Format

  • jpg
  • png
  • webp
  • tiff

limitations : bimg (libvips) doesn't support writing to gif, jp2 or pdf.

Profile

It provides all informations but the available sizes and tiles. The sizes information would be much better linked with a Cache system.

Level2 profile

It provides meta-informations about the service. (incomplete)

Viewers

Some viewers are supporting the iiif API quiet out of the box, a good way to test some aspects of the API.

TODO

  • Caching (reading from the disk)
  • Caching (produced assets)
  • Sendfile

Friendly projects