cc [ flag... ] file... –lmlib [ library... ] #include <mlib.h> mlib_status mlib_ImageBlendColor(mlib_image *dst, const mlib_image *src, const mlib_s32 *color, mlib_s32 cmask);
The mlib_ImageBlendColor() function blends an image and a color with the alpha channel.
It uses the following equation:
Cd = Cs*As + Cc*(1 - As) Ad = 1.0
where, Cs and Cd are the RGB color components of the source and destination images, respectively. As and Ad are the alpha components of the source and destination images, respectively. Cc is the color component of the constant color.
For MLIB_BYTE images, the alpha coefficients are in Q8 format. For MLIB_SHORT images, the alpha coefficients are in Q15 format and must be positive. For MLIB_USHORT images, the alpha coefficients are in Q16 format. For MLIB_INT images, the alpha coefficients are in Q31 format and must be positive.
The images can have two to four channels. The length of color array must not be less than the number of channels in the images.
The function takes the following arguments:
Pointer to destination image.
Pointer to source image.
Array of constant color components.
Channel mask to indicate the alpha channel. Each bit of cmask represents a channel in the image. The channel corresponding to the highest bit with value 1 is the alpha channel.
The function returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.
See attributes(5) for descriptions of the following attributes: