A simple, high-performance viewer for very large images using OpenSeadragon's Deep Zoom technology. Initially conceived to inspect full wafer images in semiconductor fabrication processes but should fit many other applications.
- Gigapixel Support: Smoothly view images up to 2GB
- Simple to Use: Double-click to start, drag & drop images
- Fast Processing: Uses libvips for efficient tile generation
- Persistent Cache: Processed images are cached for instant reload
- Modern UI: Clean, dark interface with image management
# Start the viewer
docker-compose up
# Open browser to http://localhost:5000Double-click start-viewer.bat
python run.pyThe browser opens automatically. Drag & drop images to view them.
- Drop an image into the upload area (or click to browse)
- Wait for processing - large images may take a minute
- Navigate - scroll to zoom, drag to pan, use controls to rotate
- Switch images - click any image in the sidebar
- Delete - hover over an image and click the trash icon
| Key | Action |
|---|---|
+ / - |
Zoom in / out |
R |
Rotate 90° |
F |
Toggle fullscreen |
0 |
Reset view |
Arrow keys |
Pan |
? |
Show help |
- JPEG (.jpg, .jpeg)
- PNG (.png)
- TIFF (.tiff, .tif)
- BMP (.bmp)
- WebP (.webp)
Maximum file size: 2GB
- When you upload an image, it's converted to Deep Zoom Image (DZI) format
- DZI creates a pyramid of tiles at multiple zoom levels
- OpenSeadragon loads only the tiles visible on screen
- Result: smooth panning and zooming even for gigapixel images
Processed tiles are stored in the ./tiles/ directory and reused on subsequent loads.
- Docker and Docker Compose
- Python 3.9+
- libvips library (installation guide)
python run.py --help
Options:
--port PORT Port to run on (default: 5000)
--no-browser Don't auto-open browserLargeImageViewer/
├── src/
│ ├── __init__.py
│ ├── __main__.py
│ ├── app.py # Main application
│ └── static/
│ └── vendor/
│ └── openseadragon/
├── run.py # Entry point
├── start-viewer.bat # Windows launcher
├── docker-compose.yml
├── Dockerfile
├── pyproject.toml
├── requirements.txt
├── README.md
├── LICENSE
└── tiles/ # Generated (gitignored)
"libvips not found" - Install libvips or use Docker instead
Slow processing - Normal for very large images. A 1GB TIFF may take 1-2 minutes.
Out of memory - Increase Docker memory limit or system RAM
MIT License - see LICENSE for details.
- OpenSeadragon - Deep zoom viewer
- libvips - Fast image processing
- Flask - Web framework