A IIIF static tile and manifest generator built using Python to generate IIIF tiled images and manifests.
This application was put together to de-mystify the process of creating and hosting IIIF content and allow implementations without the need for specialist infrastructure such as imaging servers (iip) and manifest servers.
It also includes the Bodleian Libraries Mirador plug-in written as part of the ARCHiOx project and the Mirador image-tools plug-in and is also intended as a vehicle to test the capabilities of using 2D images to encode and present 3D information.
A simple Python server application is included to serve the Mirador or Openseadragon via your local browser, it is not intended for a production environment and would need replacing with something else more suitable for the job.
This project is covered by the Mozilla Public License except for the bundled Mirador and Openseadragon builds which are covered by their own licenses.
The tile generation part of this project is based on and translated from the work of Glen Robson in his Java iiif-tiler
- Python 3.9
- Poetry
Install the project after installing Python and Poetry, as follows:
poetry install --no-rootFor this quick guide we'll be using the existing example images and manifest-config.yml files present in the image directory.
-
Run the tile generation as follows, this will generate v3 static tiles in the
iiif/imagefolder:poetry run python iiif_generator.py tiles -t 256 -v 3.0
Note: for Windows/WSL users: Add
-i http://localhost:8000/iiif/ -d imageto the command to avoid connection issues. -
Run the manifest generator as follows, this will generate a v3 manifest in the
iiif/manifestfolder:poetry run python iiif_generator.py manifest -f ammonite-config.yml -o pyritised-ammonite.json
Note: for Windows/WSL users: Add
-s http://localhost:8000 -d imageto the command to avoid connection issues. -
Run the basic server application as follows:
poetry run python server 8000
To use your own images and manifest-config.yml do the following:
-
Copy your image files into the project directory called
image. -
Create a manifest_config.yml file from the template provided, add real values to this and copy this to the
imagedirectory too. You can find a populated one inimagefor reference. Or skip ahead and use the examples already there. -
Run through the steps in Basic Instructions again.
If you've done the above set up correctly and the server is running, you can go to your browser and enter the address: http://localhost:8000/ and you will see the following. Click the buttons like the cursor does in the animated gif to play around in 2.5D in Mirador.
- add in thumbnail generation for the choices layers in Mirador, this could be done during manifest generation
- add in logo generation
- add in multi-page manifests
- add some unit tests to prevent development breaking
For developers working on this project, there are utility scripts available in the scripts/ directory:
- Performance Testing:
./scripts/performance-test.sh- Tests multi-viewer generation performance - Cleanup Utility:
./scripts/cleanup_public.sh- Cleans all generated Docker data
For detailed development setup and documentation, see:
- docker-gui/DEVELOPMENT.md - Complete development guide
- scripts/README.md - Documentation for all utility scripts
A Docker container with web interface is available for easier deployment and usage without Python installation. See docker-gui/README.md for complete Docker documentation and GUI usage instructions.
