babl is a dynamic, any to any, pixel format translation library.Babl allows conversion between different methods of storing pixels known as pixel formats that have with different bitdepth and other data representations, color models and their components permutations.A vocabulary to Formulate new pixel formats from existing primitives is provided and the framework for adding color models and new data types.Usage: Scenario The simplest use babl is to convert between linear buffer represented by existing BablPixelFormat.babl_process (babl_fish (babl_format ( "sRGB"), babl_format (CIE Lab float ")), srgb_buffer, lab_buffer, pixel_count) If existing pixel formats are not sufficient for your needs conversion, new ones can be created on the fly. The manufacturer shall provide in advance a set if duplicates are registered.format = babl_format_new (babl_model ( "R'G'B") , babl_type ( "U8"), babl_component ( "B"), babl_component ( "G"), babl_component ( "R"), NULL); babl_process (babl_fish (source_format, destination_format) source_buffer, destination_buffer, pixel_count) Some key features of "Babl" · Fast. · Accurate. · Stable, Small PLC. · Auto profiling and optimization. · ANSI C, runs on Win32, Linux and Mac, 32bit and 64bit systems. Extendable · with new formats, color models, components and data types. · Reference conversions floating point 64 bit types and models of color. What's new in this version: [read full changelog] · speed improvements due to: coalesced hashing, premature bail when creating formats to duplicate, non caching of existing trails. · Large quantities of base has been reviewed and revised. Improved coverage in the conversion matrix.