freeimage.h

FreeImage_ConvertToFloat

1 4 8 16 24 32 16UINT16 48RGB16 64RGBA16 32FLOAT 96RGBF 128RGBAF

DLL_API FIBITMAP *DLL_CALLCONV FreeImage_ConvertToFloat(FIBITMAP *dib);

Convierte una imagen a una del tipo FIT_FLOAT. La conversión se hace del siguiente modo:

  • Tipo FIT_BITMAP: el dib de entrada se convierte primero a una imagen en escala de grises de 8-bit usando FreeImage_ConvertToGreyscale, después cada valor de pixel se divide entre 255 de modo que la imagen de salida está en el rango [0..1].
  • Tipo FIT_UINT16: la conversión se hace copiando los valores enteros de cada pixel de entrada a los valores float de los pixels de salida, después cada valor de pixel se divide entre 65535 de modo que la imagen de salida está en el rango [0..1].
  • Tipo FIT_RGB[A]16: el dib de entrada se convierte primero a una imagen en escala de grieses de 16-bit, y después cada valor de pixel se divide entre 65535 de modo que la imagen de salida está en el rango [0..1].
    Cuando el canal alfa esté presente en la imagen fuente, sencillamente es ignorada por la función de conversión.
  • Tipo FIT_RGB[A]F: el dib de entrada se convierte a una imagen float de 32-bit. Si en la imagen fuente está presente el canal alfa, es ignorado por la función de conversión.

Para imágenes de entrada float de 32-bit, se retorna un clon de la entrada.

Cuando se crea la imagen float en escala de grises, la luminancia L (o intensidad de gris) de un pixel resultado se calcula a partir del modelo sRGB usando un punto blanco D65, mediante la fórmula Rec.709:

L = ( 0.2126 * r ) + ( 0.7152 * g ) + ( 0.0722 * b )

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