Module image::codecs

source ·
Expand description

Encoding and decoding for various image file formats.

§Supported formats

FormatDecodingEncoding
AVIFYes (8-bit only) *Yes (lossy only)
BMPYesYes
DDSYes
FarbfeldYesYes
GIFYesYes
HDRYesYes
ICOYesYes
JPEGYesYes
EXRYesYes
PNGYesYes
PNMYesYes
QOIYesYes
TGAYesYes
TIFFYesYes
WebPYesYes (lossless only)
  • * Requires the avif-native feature, uses the libdav1d C library.

§A note on format specific features

One of the main goals of image is stability, in runtime but also for programmers. This ensures that performance as well as safety fixes reach a majority of its user base with little effort. Re-exporting all details of its dependencies would run counter to this goal as it linked all major version bumps between them and image. As such, we are wary of exposing too many details, or configuration options, that are not shared between different image formats.

Nevertheless, the advantage of precise control is hard to ignore. We will thus consider wrappers, not direct re-exports, in either of the following cases:

  1. A standard specifies that configuration x is required for decoders/encoders and there exists an essentially canonical way to control it.
  2. At least two different implementations agree on some (sub-)set of features in practice.
  3. A technical argument including measurements of the performance, space benefits, or otherwise objectively quantified benefits can be made, and the added interface is unlikely to require breaking changes.

Features that fulfill two or more criteria are preferred.

Re-exports of dependencies that reach version 1 will be discussed when it happens.

Modules§

  • avifavif or avif-native
    Encoding of AVIF images.
  • bmpbmp
    Decoding and Encoding of BMP Images
  • ddsdds
    Decoding of DDS images
  • Decoding of farbfeld images
  • gifgif
    Decoding of GIF Images
  • hdrhdr
    Decoding of Radiance HDR Images
  • icoico
    Decoding and Encoding of ICO files
  • jpegjpeg
    Decoding and Encoding of JPEG Images
  • Decoding of OpenEXR (.exr) Images
  • pngpng
    Decoding and Encoding of PNG Images
  • pnmpnm
    Decoding of netpbm image formats (pbm, pgm, ppm and pam).
  • qoiqoi
    Decoding and encoding of QOI images
  • tgatga
    Decoding of TGA Images
  • tifftiff
    Decoding and Encoding of TIFF Images
  • webpwebp
    Decoding and Encoding of WebP Images