cc [ flag... ] file... –lmlib [ library... ] #include <mlib.h> mlib_status mlib_ImageColorOrderedDitherMxN(mlib_image *dst, const mlib_image *src, const mlib_s32 **dmask, mlib_s32 m, mlib_s32 n, mlib_s32 scale, const void *colormap);
The mlib_ImageColorOrderedDitherMxN() 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 ordered dithering.
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(), and it must have a colorcube included.
The dither masks are required to have the following property:
0 ≤ dmask[i][j] < 2**scale; scale > 0
The function takes the following arguments:
Pointer to destination image.
Pointer to source image.
Pointer to the dither masks, one per channel, in row major order.
Mask width. m > 1.
Mask height. n > 1.
Scaling factor for dmask to convert the input integer coefficients into floating-point coefficients:
floating-point coefficient = integer coefficient * \ 2**(-scale)
Internal data structure for image dithering.
The function returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.
See attributes(5) for descriptions of the following attributes:
|
mlib_ImageColorDitherInit(3MLIB), mlib_ImageColorDitherFree(3MLIB), mlib_ImageColorErrorDiffusion3x3(3MLIB), mlib_ImageColorErrorDiffusionMxN(3MLIB), mlib_ImageColorOrderedDither8x8(3MLIB), attributes(5)