freeimage.h

FreeImage_ConvertTo8Bits

1 4 8 16 24 32 16UINT16

DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertTo8Bits(FIBITMAP *dib);

Convierte un mapa de bits a 8 bits. Si el mapa de bits es un bitmap high-color (16, 24 o 32-bit) o si se trata de un mapa de bits monocromo o en escala de grises (1 o 4-bit), el resultado final será un mapa de bits en escala de grises, en caso contrario (mapas de bits con paleta de 1 o 4-bit) será un mapa de bits con paleta. Si el mapa de bits de entrada en de 8-bit se devolverá un clon del mapa de bits de entrada.

Cuando se crea la paleta de escala de grises, la intensidad de gris de un pixel resultante se basa en los niveles de rojo, verde y azul del pixel de origen correspondiente usando la siguiente fórmula (conocida como fórmula Rec. 709):

grey = (0.2126 x R + 0.7152 x G + 0.0722 x B)

Los valores 0.2126, 0.7152 y 0.0722 representan las intensidades relativas de rojo, verde y azul.

Para imágenes de escala de grises de 16-bit (imágenes cuyo tipo es FIT_UINT16), la conversión se hace dividiendo el canal de 16-bit entre 256 (ver también FreeImage_ConvertToStandardType). Se retornará un valor NULL para otros tipo de mapas de bits no estándar.