man pages section 3: Multimedia Library Functions

Exit Print View

Updated: July 2014
 
 

mlib_ImageColorErrorDiffusionMxN(3MLIB)

Name

mlib_ImageColorErrorDiffusionMxN - true-color to indexed-color or grayscale to black-white conversion, using error diffusion

Synopsis

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

mlib_status mlib_ImageColorErrorDiffusionMxN(mlib_image *dst,
     const mlib_image *src, const mlib_s32 *kernel,
     mlib_s32 m, mlib_s32 n, mlib_s32 dm, mlib_s32 dn,
     mlib_s32 scale, const void *colormap);

Description

The mlib_ImageColorErrorDiffusionMxN() function converts a 3-channel image to a 1-channel indexed image, or converts a 1-channel grayscale image to a 1-channel MLIB_BIT image, with the method of error diffusion.

The src can be an MLIB_BYTE image with 1 or 3 channels. The dst must be a 1-channel MLIB_BIT or MLIB_BYTE image.

The colormap must be created by mlib_ImageColorDitherInit(). It may or may not have a colorcube included. If it does, the colorcube is used. Otherwise, the general lookup table included in colormap is used.

The kernel is required to have the following property:

kernel[0] = kernel[1] = ... = kernel[m*dn+dm] = 0;
kernel[m*dn+dm+1] + ... + kernel[m*n-1] = 2**scale;
scale ≥ 0

Parameters

The function takes the following arguments:

dst

Pointer to destination image.

src

Pointer to source image.

kernel

Pointer to the error-distribution kernel, in row major order.

m

Kernel width. m > 1.

n

Kernel height. n > 1.

dm

X coordinate of the key element in the kernel. 0 ≤ dm < m.

dn

Y coordinate of the key element in the kernel. 0 ≤ dn < n.

scale

The scaling factor for kernel to convert the input integer coefficients into floating-point coefficients:

floating-point coefficient = integer coefficient * \
2**(-scale)
colormap

Internal data structure for image dithering.

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_ImageColorDitherInit(3MLIB), mlib_ImageColorDitherFree(3MLIB), mlib_ImageColorErrorDiffusion3x3(3MLIB), mlib_ImageColorOrderedDither8x8(3MLIB), mlib_ImageColorOrderedDitherMxN(3MLIB), attributes(5)