Skip to content

Image title

Getting Started

Imgora is used to generate image URLs for Imagor, Thumbor and wsrv.nl image processing servers.

Imgora provides a clean, chainable interface for generating image URLs for Imagor, Thumbor and Wsrv.nl image processing servers. It supports all standard operations and filters with full type hints and documentation.

Features

  • Imagor, Thumbor & Wsrv.nl Support: Compatible with Imagor, Thumbor and Wsrv.nl servers
  • URL Signing: Built-in support for secure URL signing
  • Chainable API: Fluent interface for building complex image processing pipelines
  • Comprehensive Filter Support: Implements all standard filters and operations
  • Fully Typed: Built with Python's type hints for better IDE support and code quality

Installation

Using uv (recommended):

uv pip install imgora

Or with pip:

pip install imgora

Quick Start

from imgora import WsrvNl

image_url = "https://wsrv.nl/puppy.jpg"

img = (
    # Imagor(base_url="http://localhost:8018", signer=Signer(key="my_key", type="sha256"))
    WsrvNl()
    .with_image(image_url)
    .crop(0.1, 0.2, 0.6, -100)
    .resize(200, 150)
    .blur(3)
    .grayscale()
    .quality(50)
)

# print(img.path()) # path without url
print(img.url())
Which returns:

https://wsrv.nl/?url=https%3A%2F%2Fwsrv.nl%2Fpuppy.jpg&cx=166&cy=221&cw=831&ch=787&precrop&w=200&h=150&blur=2.50&filt=greyscale&quality=50

Processed image



Original image (width reduced to 400px)



NOTE:

In order to test the url with Imagor or Thumbor you need to start a server. You can do this with the following command:

docker compose up imagor -d
docker compose up thumbor -d

More Examples

docker compose up -d # start imagor and thumbor server
uv run examples/compare_backends.py

Development

To set up the development environment:

# Clone the repository
git clone https://github.com/burgdev/imgora.git
cd imgora

# Install development dependencies
make
uv run invoke install # install 'dev' and 'test' dependencies per default, use --all to install all dependencies