Back to directory

libimagequant

A palette-quantization library that converts RGBA images into palette-based 8-bit indexed images, including the alpha channel, for producing small PNGs and GIFs.

libimagequant

libimagequant converts full RGBA images into palette-based, 8-bit indexed images while preserving the alpha channel, making it well suited to producing small PNG files and good-looking GIFs. It only handles the quantization step; encoding or decoding the actual image file format is left to whatever encoder a caller brings, with the related pngquant command-line tool being one example built on top of it.

Version 4 of the library was rewritten from C into Rust while keeping the same C interface, so existing C programs can keep using it through a Rust crate that exposes that interface, while Rust programs can use the library's own Rust API directly; it can also be cross-compiled to targets such as Android through rustup.

It is dual-licensed: free for open-source software under the GPL version 3 or later, with a separate commercial license available for closed-source or App Store distribution.

More in Libraries

See all 292
  • OpenDecision

    deepanwadhwa.github.io

    An open-source Python package that answers typed questions about application state or documents using a local natural-language-inference model, returning structured choice, score, yes/no or evidence-relation values instead of free text.

  • TradeCanvas

    bonguynvan.github.io

    A zero-dependency canvas charting engine for building TradingView-style trading charts in JavaScript, with 66 technical indicators, 24 drawing tools, 17 chart types, and real-time streaming.

  • 3d retro graphics

    3d-retro.com

    A free, CC0-licensed library of copy-paste retro 3D and demoscene graphics effects, such as plasma, raytracing, and voxel terrain, runnable as WebGL 1 or plain 2D canvas.