Skip to content

arjunkomath/rust-image-api

Repository files navigation

Image API

Build

A fast image manipulation API that can modify images on the fly.

Example: https://images.techulus.cloud/v1/resize/w/240?url=https://push.techulus.com/images/logo.png

Deploy on Railway

Usage

GET /v1/resize/w/<max-width>?url=<image-url>
resize image `<max-width>` pixels wide, without changing the aspect ratio

GET /v1/resize/h/<max-height>?url=<image-url>
resize image to `<max-height>` pixels tall, without changing the aspect ratio

GET /v1/crop/<x>/<y>/<width>/<height>?url=<image-url>
crop image to `<width>`x`<height>` pixels, starting from position (`<x>`, `<y>`)

GET /v1/convert/<format>?url=<image-url>
convert image to `<format>` format
format: png, jpeg, webp

GET /v1/flip/<orientation>?url=<image-url>
flip image  to `<orientation>` orientation
orientation: horizontal, vertical

GET /v1/grayscale?url=<image-url>
convert image to grayscale

GET /v1/invert?url=<image-url>
invert image

GET /v1/brighten/<value>?url=<image-url>
brighten image by `<value>`, negative values decrease the brightness and positive values increase it

GET /v1/blur/<sigma>?url=<image-url>
blur image with `<sigma>` sigma (this is a slow endpoint and could potentially timeout)

GET /v1/rotate/<deg>?url=<image-url>
rotate image by `<deg>` degrees, degree can be 90, 180, 270

GET /v1/unsharpen/<sigma>/<threshold>?url=<image-url>
unsharpen image, sigma is the amount to blur the image by, threshold is a control of how much to sharpen

GET /v1/next?url=<image-url>&w=<width>&h=<height>
resize image to `<width>`x`<height>` pixels, without changing the aspect ratio

Development

Run cargo make watch

Deployment

This project can be deployed using the provided Dockerfile

About

Fast image manipulation API

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors