man pages section 3: Multimedia Library Functions

Exit Print View

Updated: July 2014
 
 

mlib_ImageColorRGB2HSL (3MLIB)

Name

mlib_ImageColorRGB2HSL - RGB to HSL color conversion

Synopsis

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

mlib_status mlib_ImageColorRGB2HSL(mlib_image *dst, const mlib_image *src);

Description

The mlib_ImageColorRGB2HSL() function performs a conversion from red/green/blue to hue/saturation/lightness. The source and destination images must be three-channel images.

It uses the following equations:

   V = max(R, G, B)
Vmin = min(R, G, B)

   L = (V + Vmin)/2

   S = (V - Vmin)/(V + Vmin)         if L ≤ 1/2
   S = (V - Vmin)/(2 - V - Vmin)     if L > 1/2

   H = (5.0 + (V - B)/(V - Vmin))/6  if R = V and G = Vmin
   H = (1.0 - (V - G)/(V - Vmin))/6  if R = V and B = Vmin
   H = (1.0 + (V - R)/(V - Vmin))/6  if G = V and B = Vmin
   H = (3.0 - (V - B)/(V - Vmin))/6  if G = V and R = Vmin
   H = (3.0 + (V - G)/(V - Vmin))/6  if B = V and R = Vmin
   H = (5.0 - (V - R)/(V - Vmin))/6  if B = V and G = Vmin
   H = 0.0                           if R = G = B

where 0 ≤ R, G, B, V, Vmin, L, S ≤ 1 and 0 ≤ H < 1.

Assuming a pixel in the source image is (r, g, b) and its corresponding pixel in the destination image is (h, s, l), then for MLIB_BYTE images, the following applies:

   R = r/255
   G = g/255
   B = b/255
   h = H*256
   s = S*255
   l = L*255

for MLIB_SHORT images, the following applies:

   R = (r + 32768)/65535
   G = (g + 32768)/65535
   B = (b + 32768)/65535
   h = H*65536 - 32768
   s = S*65535 - 32768
   l = L*65535 - 32768

for MLIB_USHORT images, the following applies:

   R = r/65535
   G = g/65535
   B = b/65535
   h = H*65536
   s = S*65535
   l = L*65535

and for MLIB_INT images, the following applies:

   R = (r + 2147483648)/4294967295
   G = (g + 2147483648)/4294967295
   B = (b + 2147483648)/4294967295
   h = H*4294967296 - 2147483648
   s = S*4294967295 - 2147483648
   l = L*4294967295 - 2147483648

Parameters

The function takes the following arguments:

dst

Pointer to destination image.

src

Pointer to source image.

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_ImageColorHSL2RGB(3MLIB), mlib_ImageColorHSL2RGB_Fp(3MLIB), mlib_ImageColorRGB2HSL_Fp(3MLIB), attributes(5)