QOI is a very simple raster image format C library with a decent lossless compression and an extremely good performance - a direct consequence of its simplicity and its compression features.

It was clear from the first sight on that format that it was urgent to add it to GID (Ada).

The «Generic Image Decoder» (GID) is an Ada package for decoding a broad variety of image formats, from any data stream, to any kind of medium, be it an in-memory bitmap, a GUI object, some other stream, floating-point data for scientific calculations, a browser element, a device,... Animations are supported.

Some features:

  • Task safe
  • Endian-neutral
  • Multi-platform, but native code build
  • Standalone (no dependency on other libraires, bindings, etc.; no extra component needed for running)
  • Unconditionally portable code: OS-, CPU-, compiler-independent code (*).
  • Pure Ada 2005: this package can be used in projects in Ada 2005, Ada 2012 and later language versions
  • Free, open-source

(*) within limits of compiler's provided integer types and target architecture capacity.

Some existing or possible applications:

  • Image processing (interactive or not)
  • Image analysis, text recognition
  • A drawing program
  • A web browser
  • Use of images as data for scientific simulations
  • Thumbnail generation for a file manager
  • Conversion of compressed pictures to raw bitmaps for a user interface

Currently supported formats are: BMP, GIF, JPEG, PNG, PNM (PBM, PGM, PPM), TGA