Imaginary is an excellent piece of software for working with images over http.
Quoting the author:
Fast, simple, scalable HTTP microservice for high-level image processing with first-class Docker support.
This container seeks to find a compromise between size, functionality and stability.
Note: I intend to add a e2e test suite to verify that these formats are supported.
- jp(e)g
- gif
- png
- webp
- tiff
Also, these libraries:
- ogre: fast math
- cms2: ICC color management
- exif: image metadata
- fftw3: fourier transforms
Name | Version | Compressed size |
---|---|---|
h2non/imaginary | 1.1.0 | 93mb |
jbergstroem/imaginary-alpine | 1.1.0 | 12mb |
We achieve a smaller container size for a few reasons:
- We use alpine linux instead of debian/ubuntu as base
- We don't support as many file formats as upstream does
- We intentionally skip the Imagemagick wrapper for size, performance and security reasons
Since we are using Alpine as a base image, there are differences in libc (musl vs glibc). The main drawback is stack depth which may or may not affect you based on how complicated transforms you do.