cc [ flag... ] file... –lmlib [ library... ] #include <mlib.h> mlib_status mlib_ImageBlendMulti_Fp(mlib_image *dst, const mlib_image **srcs, const mlib_image **alphas, const mlib_d64 *c, mlib_s32 n);
The mlib_ImageBlendMulti_Fp() function blends multiple source images, using multiple alpha images, into a single destination image.
All images involved should have the same data type and same size and the source and destination images should have the same number of channels. The alpha images should have either 1 channel or the same number of channels as the sources and destination. A single-channel alpha image would be applied to all channels of the corresponding source image. Single and multi-channel alpha images can be mixed in the same invocation.
It uses the following equation:
n-1 SUM {alphas[k][x][y][j] * srcs[k][x][y][i]} k=0 dst[x][y][i] = --------------------------------------------- n-1 SUM {alphas[k][x][y][j]} k=0
or
n-1 dst[x][y][i] = c[i] if SUM {alphas[k][x][y][j]} = 0 k=0
where j = i for multi-channel alpha images; j = 0 for signle-channel alpha images.
The function takes the following arguments:
Pointer to destination image.
Pointer to an array of source images.
Pointer to an array of alpha images.
Background color.
Number of source images to be blended.
The function returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.
See attributes(5) for descriptions of the following attributes:
|
mlib_ImageBlendMulti(3MLIB), mlib_ImageBlend(3MLIB), mlib_ImageBlend_Fp(3MLIB), attributes(5)