man pages section 3: Multimedia Library Functions

Exit Print View

Updated: July 2014
 
 

mlib_ImageDivAlpha (3MLIB)

Name

mlib_ImageDivAlpha - alpha channel division

Synopsis

cc [ flag... ] file... –lmlib [ library... ]
#include <mlib.h>

mlib_status mlib_ImageDivAlpha(mlib_image *dst, const mlib_image *src,
     mlib_s32 cmask);

Description

The mlib_ImageDivAlpha() function divides color channels by the alpha channel on a pixel-by-pixel basis.

For the MLIB_BYTE image, it uses the following equation:

dst[x][y][c] = src[x][y][c] / (src[x][y][a] * 2**(-8))

For the MLIB_SHORT image, it uses the following equation:

dst[x][y][c] = src[x][y][c] / (src[x][y][a] * 2**(-15))

For the MLIB_USHORT image, it uses the following equation:

dst[x][y][c] = src[x][y][c] / (src[x][y][a] * 2**(-16))

For the MLIB_INT image, it uses the following equation:

dst[x][y][c] = src[x][y][c] / (src[x][y][a] * 2**(-31))

where c and a are the indices for the color channels and the alpha channel, respectively, so c != a.

In the case of src[x][y][a] = 0,

dst[x][y][c] = 0              if src[x][y][c] = 0
dst[x][y][c] = DATA_TYPE_MAX  if src[x][y][c] > 0
dst[x][y][c] = DATA_TYPE_MIN  if src[x][y][c] < 0

where DATA_TYPE is MLIB_U8, MLIB_S16, MLIB_U16, or MLIB_S32 for an image of type MLIB_BYTE, MLIB_SHORT, MLIB_USHORT, or MLIB_INT, respectively.

Parameters

The function takes the following arguments:

dst

Pointer to destination image.

src

Pointer to 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 of cmask is the alpha channel.

Return Values

The function returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.

Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
MT-Level
MT-Safe

See also

mlib_ImageDivAlpha_Inp(3MLIB), mlib_ImageDivAlpha_Fp(3MLIB), mlib_ImageDivAlpha_Fp_Inp(3MLIB), attributes(5)