#include <allegro5/allegro_color.h> ALLEGRO_COLOR al_color_lab(float l, float a, float b)
The L*a*b* color space can represent more colors than are visible in sRGB and therefore conversion may result in RGB values outside of the 0..1 range. You can check for that case with al_is_color_valid(3).
In some literature the range of L* is 0 to 100 and a* and b* are from -100 to +100. In that case divide all components by 100 before passing them to this function.
|Allegro reference manual|