mlib_ImageBlend_ONE_SAS(3MLIB)
Name
mlib_ImageBlend_BSRC1_BSRC2, mlib_ImageBlend_DA_DA, mlib_ImageBlend_DA_DC, mlib_ImageBlend_DA_OMDA, mlib_ImageBlend_DA_OMDC, mlib_ImageBlend_DA_OMSA, mlib_ImageBlend_DA_ONE, mlib_ImageBlend_DA_SA, mlib_ImageBlend_DA_SAS, mlib_ImageBlend_DA_ZERO, mlib_ImageBlend_OMDA_DA, mlib_ImageBlend_OMDA_DC, mlib_ImageBlend_OMDA_OMDA, mlib_ImageBlend_OMDA_OMDC, mlib_ImageBlend_OMDA_OMSA, mlib_ImageBlend_OMDA_ONE, mlib_ImageBlend_OMDA_SA, mlib_ImageBlend_OMDA_SAS, mlib_ImageBlend_OMDA_ZERO, mlib_ImageBlend_OMSA_DA, mlib_ImageBlend_OMSA_DC, mlib_ImageBlend_OMSA_OMDA, mlib_ImageBlend_OMSA_OMDC, mlib_ImageBlend_OMSA_OMSA, mlib_ImageBlend_OMSA_ONE, mlib_ImageBlend_OMSA_SA, mlib_ImageBlend_OMSA_SAS, mlib_ImageBlend_OMSA_ZERO, mlib_ImageBlend_OMSC_DA, mlib_ImageBlend_OMSC_DC, mlib_ImageBlend_OMSC_OMDA, mlib_ImageBlend_OMSC_OMDC, mlib_ImageBlend_OMSC_OMSA, mlib_ImageBlend_OMSC_ONE, mlib_ImageBlend_OMSC_SA, mlib_ImageBlend_OMSC_SAS, mlib_ImageBlend_OMSC_ZERO, mlib_ImageBlend_ONE_DA, mlib_ImageBlend_ONE_DC, mlib_ImageBlend_ONE_OMDA, mlib_ImageBlend_ONE_OMDC, mlib_ImageBlend_ONE_OMSA, mlib_ImageBlend_ONE_ONE, mlib_ImageBlend_ONE_SA, mlib_ImageBlend_ONE_SAS, mlib_ImageBlend_ONE_ZERO, mlib_ImageBlend_SA_DA, mlib_ImageBlend_SA_DC, mlib_ImageBlend_SA_OMDA, mlib_ImageBlend_SA_OMDC, mlib_ImageBlend_SA_OMSA, mlib_ImageBlend_SA_ONE, mlib_ImageBlend_SA_SA, mlib_ImageBlend_SA_SAS, mlib_ImageBlend_SA_ZERO, mlib_ImageBlend_SC_DA, mlib_ImageBlend_SC_DC, mlib_ImageBlend_SC_OMDA, mlib_ImageBlend_SC_OMDC, mlib_ImageBlend_SC_OMSA, mlib_ImageBlend_SC_ONE, mlib_ImageBlend_SC_SA, mlib_ImageBlend_SC_SAS, mlib_ImageBlend_SC_ZERO, mlib_ImageBlend_ZERO_DA, mlib_ImageBlend_ZERO_DC, mlib_ImageBlend_ZERO_OMDA, mlib_ImageBlend_ZERO_OMDC, mlib_ImageBlend_ZERO_OMSA, mlib_ImageBlend_ZERO_ONE, mlib_ImageBlend_ZERO_SA, mlib_ImageBlend_ZERO_SAS, mlib_ImageBlend_ZERO_ZERO - blending
Synopsis
cc [ flag... ] file... –lmlib [ library... ]
#include <mlib.h>
mlib_status mlib_ImageBlend_BSRC1_BSRC2(mlib_image *dst,
const mlib_image *src1, const mlib_image *src2, mlib_s32 cmask);
Description
This group of functions supports digital image composition. They are low-level, non-in-place, blending functions.
The image type must be MLIB_BYTE. The input and output images must contain three or four channels. For three-channel images, the alpha value is as if the alpha value is 1.
BSRC1 is one of the following: ZERO, ONE, SC, OMSC, DA, SA, OMDA, or OMSA. BSRC2 is one of the following: ZERO, ONE, DC, OMDC, DA, SA, OMDA, OMSA, or SAS.
The following are predefined blend factor types used in mediaLib image composition functions.
/* image blend factors */
typedef enum {
MLIB_BLEND_ZERO,
MLIB_BLEND_ONE,
MLIB_BLEND_DST_COLOR,
MLIB_BLEND_SRC_COLOR,
MLIB_BLEND_ONE_MINUS_DST_COLOR,
MLIB_BLEND_ONE_MINUS_SRC_COLOR,
MLIB_BLEND_DST_ALPHA,
MLIB_BLEND_SRC_ALPHA,
MLIB_BLEND_ONE_MINUS_DST_ALPHA,
MLIB_BLEND_ONE_MINUS_SRC_ALPHA,
MLIB_BLEND_SRC_ALPHA_SATURATE
} mlib_blend;
See the following table for the definitions of the blend factors.
|
|
|
MLIB_BLEND_ZERO
|
(0,0,0,0)
|
ZERO
|
MLIB_BLEND_ONE
|
(1,1,1,1)
|
ONE
|
MLIB_BLEND_DST_COLOR
|
(Rd,Gd,Bd,Ad)
|
DC
|
MLIB_BLEND_SRC_COLOR
|
(Rs,Gs,Bs,As)
|
SC
|
MLIB_BLEND_ONE_MINUS_DST_COLOR
|
(1,1,1,1)-(Rd,Gd,Bd,Ad)
|
OMDC
|
MLIB_BLEND_ONE_MINUS_SRC_COLOR
|
(1,1,1,1)-(Rs,Gs,Bs,As)
|
OMSC
|
MLIB_BLEND_DST_ALPHA
|
(Ad,Ad,Ad,Ad)
|
DA
|
MLIB_BLEND_SRC_ALPHA
|
(As,As,As,As)
|
SA
|
MLIB_BLEND_ONE_MINUS_DST_ALPHA
|
(1,1,1,1)-(Ad,Ad,Ad,Ad)
|
OMDA
|
MLIB_BLEND_ONE_MINUS_SRC_ALPHA
|
(1,1,1,1)-(As,As,As,As)
|
OMSA
|
MLIB_BLEND_SRC_ALPHA_SATURATE
|
(f,f,f,1)
|
SAS
|
|
[*]: The components of the first source image pixel are (Rd,Gd,Bd,Ad), and the components of the second source pixel are (Rs,Gs,Bs,As). Function f = min(As,1-Ad).
The blending formula for non-in-place processing is:
Cd = Cs1*S1 + Cs2*S2
where Cd is the destination pixel (Rd,Gd,Bd,Ad), Cs1 is the first source pixel (Rs1,Gs1,Bs1,As1), Cs2 is the second source pixel (Rs2,Gs2,Bs2,As2), and S1 and S2 are the blend factors for the first and second sources, respectively.
Parameters
Each of the functions takes the following arguments:
- dst
Pointer to destination image.
- src1
Pointer to the first source image.
- src2
Pointer to the second source image.
- cmask
Channel mask to indicate the alpha channel. Each bit of the mask represents a channel in the image. The channel corresponding to the 1 bit is the alpha channel. cmask must be either 0x01 or 0x08.
Return Values
Each of the functions returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.
Attributes
See attributes(5) for descriptions of the following attributes:
|
|
Interface Stability
|
Committed
|
MT-Level
|
MT-Safe
|
|
See also
mlib_ImageBlend_BSRC1_BSRC2_Inp(3MLIB), mlib_ImageComposite(3MLIB), mlib_ImageComposite_Inp(3MLIB), attributes(5)