## Linux and UNIX Man Pages

Test Your Knowledge in Computers #811
Difficulty: Easy
RGBA stands for red green blue alpha.
True or False?

# mlib_imagecolorhsl2rgb(3mlib) [opensolaris man page]

```mlib_ImageColorHSL2RGB(3MLIB)				    mediaLib Library Functions				     mlib_ImageColorHSL2RGB(3MLIB)

NAME
mlib_ImageColorHSL2RGB - HSL to RGB color conversion

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

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

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

It uses the following equations:

L' = L	    if L <= 1/2
L' = 1 - L	    if L > 1/2

V = L + S*L'
P = L - S*L'
Q = L + S*L'*(1 - 2*fraction(H*6))
T = L - S*L'*(1 - 2*fraction(H*6))

R, G, B = V, T, P	 if 0	<= H < 1/6
R, G, B = Q, V, P	 if 1/6 <= H < 2/6
R, G, B = P, V, T	 if 2/6 <= H < 3/6
R, G, B = P, Q, V	 if 3/6 <= H < 4/6
R, G, B = T, P, V	 if 4/6 <= H < 5/6
R, G, B = V, P, Q	 if 5/6 <= H < 1

where 0 <= H < 1 and 0 <= S, L, L', V, P, Q, T, R, G, B <= 1.

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

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

for MLIB_SHORT images, the following applies:

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

for MLIB_USHORT images, the following applies:

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

and for MLIB_INT images, the following applies:

H = (h + 2147483648)/4294967296
S = (s + 2147483648)/4294967295
L = (l + 2147483648)/4294967295
r = R*4294967295 - 2147483648
g = G*4294967295 - 2147483648
b = B*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			   |
+-----------------------------+-----------------------------+

mlib_ImageColorHSL2RGB_Fp(3MLIB), mlib_ImageColorRGB2HSL(3MLIB), mlib_ImageColorRGB2HSL_Fp(3MLIB), attributes(5)

SunOS 5.11							    12 Sep 2007 				     mlib_ImageColorHSL2RGB(3MLIB)```

## Check Out this Related Man Page

```mlib_ImageColorHSV2RGB(3MLIB)				    mediaLib Library Functions				     mlib_ImageColorHSV2RGB(3MLIB)

NAME
mlib_ImageColorHSV2RGB - HSV to RGB color conversion

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

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

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

It uses the following equations:

P = V*(1 - S)
Q = V*(1 - S*fraction(H*6))
T = V*(1 - S*(1 - fraction(H*6)))

R, G, B = V, T, P	 if 0	<= H < 1/6
R, G, B = Q, V, P	 if 1/6 <= H < 2/6
R, G, B = P, V, T	 if 2/6 <= H < 3/6
R, G, B = P, Q, V	 if 3/6 <= H < 4/6
R, G, B = T, P, V	 if 4/6 <= H < 5/6
R, G, B = V, P, Q	 if 5/6 <= H < 1

where 0 <= H < 1 and 0 <= S, V, P, Q, T, R, G, B <= 1.

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

H = h/256
S = s/255
V = v/255
r = R*255
g = G*255
b = B*255

for MLIB_SHORT images, the following applies:

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

for MLIB_USHORT images, the following applies:

H = h/65536
S = s/65535
V = v/65535
r = R*65535
g = G*65535
b = B*65535

and for MLIB_INT images, the following applies:

H = (h + 2147483648)/4294967296
S = (s + 2147483648)/4294967295
V = (v + 2147483648)/4294967295
r = R*4294967295 - 2147483648
g = G*4294967295 - 2147483648
b = B*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			   |
+-----------------------------+-----------------------------+