#ThingUmbrella #ReleaseThursday & new package announcement:
https://thi.ng/imago is a declarative & extensible image processor using JSON arrays to define pipelines (or rather trees, because nestable) of processing steps as pure data. Each pipeline can produce file outputs at any point. Multiple outputs are supported & expected. So far there're a dozen operations/transforms (most of them with many options). More to come and it's also very straightforward to add support for custom image transforms.
The following file formats are supported: AVIF, GIF, JPEG, JPEG2000, JPEG XL, PNG, SVG (input only), TIFF, WebP, raw data (output only). Output file names can be templated with various presets (e.g. dimensions, date, time, hashes etc.)
All image I/O & processing is done via https://sharp.pixelplumbing.com and https://thi.ng/pixel & https://thi.ng/pixel-dither. Whilst "sharp" is doing most of the behind-the-scenes heavy lifting, this new library allows for a wider set of transformations and options to define various ops (e.g. sizes/positions can also be given as percent). Sharp on its own also has other limitations (which can only be overcome with extra interim in-memory serializations)...
**Docs & examples are still forthcoming — please bear with me!
**
Ps. This project is the spritual successor of an eponymous project I started in Clojure/Java back in 2014... The big wheel keeps on turning!
Pps. ...it's also the 190th (
) library/project in #ThingUmbrella!